From e288f1b955a311b357e2c6546f1578079bb897cf Mon Sep 17 00:00:00 2001 From: iliajie Date: Sat, 20 May 2023 12:01:57 +0300 Subject: [PATCH] Revert recent changes to add on the PR instead https://github.com/webmin/webmin/issues/1907#issuecomment-1555642036 --- updown/fetch.cgi | 64 +++++------------------------------------------- 1 file changed, 6 insertions(+), 58 deletions(-) diff --git a/updown/fetch.cgi b/updown/fetch.cgi index 0c42790cc..b17bf2588 100755 --- a/updown/fetch.cgi +++ b/updown/fetch.cgi @@ -80,65 +80,14 @@ if ($ENV{'PATH_INFO'}) { if (!$fetch_show) { print "Content-Disposition: Attachment\n"; } - # Stat file - my @st = stat($file); - my $fsize = $st[7]; - - # Get and analyze the file contents first - my $fdata = ""; - my $dangertypes = $type =~ /html|xml|pdf/i; - my $htmltype = $type =~ /html/i ? 1 : 0; - my $pdftype = $type =~ /pdf/i ? 'pdf' : 0; - my $bsize = - $dangertypes ? $fsize : &get_buffer_size_binary(); - while(read(FILE, $buffer, $bsize)) { - if ($dangertypes) { - my $buffer_filtered = &filter_javascript($buffer, $pdftype); - # If content was changed upon filtering - if ($buffer_filtered ne $buffer) { - # For text simply return filtered but - # tell user that it was filtered out - if ($htmltype) { - # Add a banner showing content was changed - my $prefdata = - &ui_alert_box($text{'ui_jsblocked'}, 'danger'); - # Pass filtered content with the banner - # Insert the banner in HTML body - if ($buffer_filtered =~ s/()/$1$prefdata/) { - $fdata = $buffer_filtered; - } - else { - # Insert the banner to the top of HTML doc - $fdata = "$prefdata$buffer_filtered"; - } - # Update content length - $fsize = length($fdata); - } - # For no text files simply force - # download if file was altered - else { - # Force send it - $type = "application/octet-stream"; - print "Content-Disposition: Attachment\n"; - # Pass original content - $fdata = $buffer; - } - } - # Buffere was not changed, just pass it as is - else { - $fdata = $buffer; - } - } - else { - $fdata .= $buffer; - } - } - close(FILE); - - print "Content-length: $fsize\n"; + @st = stat($file); + print "Content-length: $st[7]\n"; print "X-Content-Type-Options: nosniff\n"; print "Content-type: $type\n\n"; - print "$fdata"; + while(read(FILE, $buffer, &get_buffer_size_binary())) { + print("$buffer"); + } + close(FILE); } # Switch back to root @@ -170,4 +119,3 @@ else { &redirect("fetch.cgi".$file); } } -