]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/service.in
[project @ 2001-03-18 05:17:07 by doogie]
[debbugs.git] / scripts / service.in
index 08a8f357cb612b7ace2a0a2e0e2b260f8c246f47..1b6114613a6a562e397421ebd12a860d341470be 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-# $Id: service.in,v 1.31 2000/11/22 10:02:51 joy Exp $
+# $Id: service.in,v 1.33 2001/03/18 05:17:07 doogie Exp $
 #
 # Usage: service <code>.nn
 # Temps:  incoming/P<code>.nn
@@ -54,6 +54,9 @@ for ($i=0; $i<=$#msg; $i++)
     } else { print "!>$_<\n" if $debug; }
 }
 
+if (defined $header{'resent-from'} && !defined $header{'from'}) {
+    $header{'from'} = $header{'resent-from'};
+}
 defined($header{'from'}) || &quit("no From header");
 delete $header{'reply-to'} if ( defined($header{'reply-to'}) && $header{'reply-to'} =~ m/^\s*$/ );
 if ( defined($header{'reply-to'}) && $header{'reply-to'} ne "" ) {
@@ -821,6 +824,11 @@ END
 
 sub sendlynxdocraw {
     local ($relpath,$description) = @_;
+# check for crap in $relpath
+    if ($relpath =~ m/^\./ || $relpath !~ m/^[\d\w-+.@]+$/) {
+      &transcript("Invalid request $relpath!\n");
+      return;
+    }
     $doc='';
     open(L,"lynx -nolist -dump http://$gWebDomain/$relpath 2>&1 |") || &quit("fork for lynx: $!");
     while(<L>) { $doc.=$_; }