]> granicus.if.org Git - curl/commitdiff
singlesocket: use separate variable for inner loop
authorDaniel Stenberg <daniel@haxx.se>
Fri, 31 May 2019 21:00:06 +0000 (23:00 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 1 Jun 2019 08:41:15 +0000 (10:41 +0200)
An inner loop within the singlesocket() function wrongly re-used the
variable for the outer loop which then could cause an infinite
loop. Change to using a separate variable!

Reported-by: Eric Wu
Fixes #3970
Closes #3973

lib/multi.c

index ec0318735075616e0075e8785a1dd883920b6fb9..02f846033bf14886fd6394acd93c39d777f74dd9 100644 (file)
@@ -2252,14 +2252,14 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
     actions[i] = action;
     if(entry) {
       /* check if new for this transfer */
-      for(i = 0; i< data->numsocks; i++) {
-        if(s == data->sockets[i]) {
-          prevaction = data->actions[i];
+      int j;
+      for(j = 0; j< data->numsocks; j++) {
+        if(s == data->sockets[j]) {
+          prevaction = data->actions[j];
           sincebefore = TRUE;
           break;
         }
       }
-
     }
     else {
       /* this is a socket we didn't have before, add it to the hash! */