summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.diff52
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