From cfdc53b84ec0dcf0537b83e7637c36044d7acd53 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Fri, 2 Apr 2010 13:37:03 +0200
Subject: [PATCH 1/2] eliminate a race condition in Curl_resolv_timeout()

---
 lib/hostip.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/hostip.c b/lib/hostip.c
index e34fd5a..9255f6a 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -628,6 +628,9 @@ int Curl_resolv_timeout(struct connectdata *conn,
 clean_up:
 
   if (timeout > 0) {
+    if(!prev_alarm)
+      /* deactivate a possibly active alarm before uninstalling the handler */
+      alarm(0);
 
 #ifdef HAVE_SIGACTION
     if(keep_copysig) {
@@ -664,8 +667,6 @@ clean_up:
       else
         alarm((unsigned int)alarm_set);
     }
-    else
-      alarm(0); /* just shut it off */
   }
 #endif /* USE_ALARM_TIMEOUT */
 
-- 
1.6.6.1


