curl-library
[PATCH] libcurl/Curl_resolv_timeout: longjump address should be set before alarm() call
From: Ettore Del Negro <write_at_ettoredelnegro.me>
Date: Thu, 13 Oct 2011 07:08:32 -0400
Date: Thu, 13 Oct 2011 07:08:32 -0400
---
lib/hostip.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/hostip.c b/lib/hostip.c
index d261a16..ab74d62 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -596,10 +596,6 @@ int Curl_resolv_timeout(struct connectdata *conn,
#endif
#endif /* HAVE_SIGACTION */
- /* alarm() makes a signal get sent when the timeout fires off, and that
- will abort system calls */
- prev_alarm = alarm(curlx_sltoui(timeout/1000L));
-
/* This allows us to time-out from the name resolver, as the timeout
will generate a signal and we will siglongjmp() from that here.
This technique has problems (see alarmfunc).
@@ -613,6 +609,10 @@ int Curl_resolv_timeout(struct connectdata *conn,
goto clean_up;
}
+ /* alarm() makes a signal get sent when the timeout fires off, and that
+ will abort system calls */
+ prev_alarm = alarm(curlx_sltoui(timeout/1000L));
+
#else
#ifndef CURLRES_ASYNCH
if(timeoutms)
--
1.7.2.5
--------------040004090806010904080906
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
--------------040004090806010904080906--
Received on 2001-09-17