diff options
Diffstat (limited to 'net-analyzer/net-snmp/files/net-snmp-5.2.1-fix-insecure-fixproc.diff')
-rw-r--r-- | net-analyzer/net-snmp/files/net-snmp-5.2.1-fix-insecure-fixproc.diff | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.2.1-fix-insecure-fixproc.diff b/net-analyzer/net-snmp/files/net-snmp-5.2.1-fix-insecure-fixproc.diff new file mode 100644 index 000000000000..cad67929e5be --- /dev/null +++ b/net-analyzer/net-snmp/files/net-snmp-5.2.1-fix-insecure-fixproc.diff @@ -0,0 +1,52 @@ +--- local/fixproc.orig 2005-05-18 09:57:16.000000000 -0400 ++++ local/fixproc 2005-05-18 11:00:38.000000000 -0400 +@@ -129,6 +129,9 @@ + # + # Timothy Kong 3/1995 + ++require File::Temp; ++use File::Temp(); ++ + $database_file = '/local/etc/fixproc.conf'; + + $debug = 0; # specify debug level using -dN +@@ -196,7 +199,6 @@ + printf (stderr "create_sh_script\n") if ($debug > 0); + + $! = $fixproc_error; +- open (file, ">"."$file") || die "$0: cannot open $file\n"; + while ( $shell_lines[$i] ne $shell_end_marker ) + { + printf (file "%s", $shell_lines[$i]); +@@ -231,13 +233,13 @@ + { + # it must be "shell", so execute the shell script defined in database + +- local ($tmpfile) = "/tmp/fix_$$"; ++ local ($tmpfile) = new File::Temp(TEMPLATE => 'fix_XXXXX', ++ DIR => '/tmp'); + + &create_sh_script ($fix{$proc}, $tmpfile); + + # return code is number divided by 256 + $error_code = (system "$tmpfile") / 256; +- system "rm $tmpfile"; + return ($fix_failed_error) if ($error_code != 0); + # sleep needed here? + return &do_exist ($proc); +@@ -262,13 +264,13 @@ + # if not "exist", then it must be "shell", so execute the shell script + # defined in database + +- local ($tmpfile) = "/tmp/check_$$"; ++ local ($tmpfile) = new File::Temp(TEMPLATE => 'check_XXXXXX', ++ DIR => '/tmp'); + + &create_sh_script ($check{$proc}, $tmpfile); + + # return code is number divided by 256 + $error_code = (system "$tmpfile") / 256; +- system "rm $tmpfile"; + return ($check_failed_error) if ($error_code != 0); + + # check passed, continue |