Blob Blame History Raw
--- a/FuzzyOcr/Config.pm
+++ b/FuzzyOcr/Config.pm
@@ -577,7 +577,7 @@ sub parse_config {
         return 1;
     } elsif ($opts->{key} eq 'focr_bin_helper') {
         my @cmd; $conf = $opts->{conf};
-        my $val = $opts->{value}; $val =~ s/[\s]*//g;
+        my $val = Mail::SpamAssassin::Util::untaint_var($opts->{value}); $val =~ s/[\s]*//g;
         debuglog("focr_bin_helper: '$val'");
         foreach my $bin (split(',',$val)) {
             unless (grep {m/$bin/} @bin_utils) {
@@ -618,6 +618,7 @@ sub finish_parsing_end {
             delete $conf->{$b};
         } 
         if (defined $conf->{$b}) {
+            $conf->{$b} = Mail::SpamAssassin::Util::untaint_var($conf->{$b});
             debuglog("Using $a => $conf->{$b}");
         } else {
             foreach my $p (@paths) {
diff --git a/FuzzyOcr/Logging.pm b/FuzzyOcr/Logging.pm
index bed9ff5..ef02b32 100644
--- a/FuzzyOcr/Logging.pm
+++ b/FuzzyOcr/Logging.pm
@@ -31,7 +31,8 @@ sub logfile {
     my $time = strftime("%Y-%m-%d %H:%M:%S",localtime(time));
     $logtext =~ s/\n/\n                      /g;
 
-    unless ( open LOGFILE, ">>", $conf->{focr_logfile} ) {
+    my $fname = Mail::SpamAssassin::Util::untaint_file_path($conf->{focr_logfile});
+    unless ( open LOGFILE, ">>", $fname ) {
        warn "Can't open $conf->{focr_logfile} for writing, check permissions";
        return;
     }