From bebf70667dcba71030737ade35a0aa7063640414 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Fri, 13 Jan 2006 12:16:16 +0000
Subject: [PATCH] Andrew Benham fixed a race condition in the test suite that
 could cause the test script to kill all processes in the current process
 group!

---
 CHANGES           | 4 ++++
 RELEASE-NOTES     | 3 ++-
 tests/runtests.pl | 7 ++++---
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/CHANGES b/CHANGES
index 75128e41fe..0dbdbeedd1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Daniel (13 January 2006)
+- Andrew Benham fixed a race condition in the test suite that could cause the
+  test script to kill all processes in the current process group!
+
 Daniel (12 January 2006)
 - Michael Jahn:
 
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index e541589896..d90e31210b 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -15,6 +15,7 @@ This release includes the following changes:
 
 This release includes the following bugfixes:
 
+ o test suite kill race condition
  o FTP_SKIP_PASV_IP and FTP_USE_EPSV when doing FTP over HTTP proxy
  o Doing a second request with FTP on the same bath path, would make libcurl
    confuse what current working directory it had
@@ -36,6 +37,6 @@ This release would not have looked like this without help, code, reports and
 advice from friends like these:
 
  Dov Murik, Jean Jacques Drouin, Andres Garcia, Yang Tse, Gisle Vanem, Dan
- Fandrich, Alexander Lazic, Michael Jahn
+ Fandrich, Alexander Lazic, Michael Jahn, Andrew Benham
  
         Thanks! (and sorry if I forgot to mention someone)
diff --git a/tests/runtests.pl b/tests/runtests.pl
index e4a7b10718..a982dc7122 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -249,9 +249,10 @@ sub startnew {
             open(PID, "<$pidfile");
             $pid2 = 0 + <PID>;
             close(PID);
-            if(kill(0, $pid2)) {
-                # make sure this pid is alive, as otherwise it is just likely
-                # to be the _previous_ pidfile or similar!
+            if($pid2 && kill(0, $pid2)) {
+                # if $pid2 is valid, then make sure this pid is alive, as
+                # otherwise it is just likely to be the _previous_ pidfile or
+                # similar!
                 last;
             }
         }
-- 
GitLab