[svn:modperl-modules] rev 191 - Apache-Watchdog-RunAway/trunk

[email protected] 21 Mar 2005 17:36:45 -0000
Newsgroups perl.modperl.modules.svn
Message-ID <[email protected]>
Author: stas
Date: Mon Mar 21 09:36:45 2005
New Revision: 191

Modified:
   Apache-Watchdog-RunAway/trunk/RunAway.pm
Log:
untaint proc id used in stop_monitor (now runs under -T)


Modified: Apache-Watchdog-RunAway/trunk/RunAway.pm
==============================================================================
--- Apache-Watchdog-RunAway/trunk/RunAway.pm	(original)
+++ Apache-Watchdog-RunAway/trunk/RunAway.pm	Mon Mar 21 09:36:45 2005
@@ -73,7 +73,8 @@
     open $fh, $Apache::Watchdog::RunAway::LOCK_FILE
         or die "Cannot open $Apache::Watchdog::RunAway::LOCK_FILE: $!";
     chomp (my $pid = <$fh>);
-    $pid = 0 unless $pid =~ /^\d+$/;
+    # untaint
+    $pid = $pid =~ /^(\d+)$/ ? $1 : 0;
     close $fh;
 
     return $pid;
@@ -122,8 +123,13 @@
 
     defined (my $watchdog_pid = fork) or die "Cannot fork: $!\n";
 
-    start_monitor() unless $watchdog_pid;
-
+    if ($watchdog_pid) {
+        return $watchdog_pid;
+    }
+    else {
+        start_monitor();
+        CORE::exit();
+    }
 }