]> granicus.if.org Git - curl/commitdiff
singlesocket: fix the 'sincebefore' placement
authorDaniel Stenberg <daniel@haxx.se>
Tue, 19 Feb 2019 14:56:54 +0000 (15:56 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 20 Feb 2019 07:15:32 +0000 (08:15 +0100)
The variable wasn't properly reset within the loop and thus could remain
set for sockets that hadn't been set before and miss notifying the app.

This is a follow-up to 4c35574 (shipped in curl 7.64.0)

Reported-by: buzo-ffm on github
Detected-by: Jan Alexander Steffens
Fixes #3585
Closes #3589

lib/multi.c

index aaae8b97862031bb3c3a1cf3e399764c72f4b6fb..521262b2b26712a26370cce5b707ace5a426de00 100644 (file)
@@ -2349,8 +2349,6 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
   int num;
   unsigned int curraction;
   int actions[MAX_SOCKSPEREASYHANDLE];
-  unsigned int comboaction;
-  bool sincebefore = FALSE;
 
   for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++)
     socks[i] = CURL_SOCKET_BAD;
@@ -2369,6 +2367,8 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
       i++) {
     unsigned int action = CURL_POLL_NONE;
     unsigned int prevaction = 0;
+    unsigned int comboaction;
+    bool sincebefore = FALSE;
 
     s = socks[i];