Fixed a few compiler warnings. Try to do a slightly better job of
authorDan Fandrich <dan@coneharvesters.com>
Thu, 30 Aug 2007 18:26:19 +0000 (18:26 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Thu, 30 Aug 2007 18:26:19 +0000 (18:26 +0000)
cleaning up after an OOM condition in curl_multi_add_handle

lib/multi.c
tests/server/sockfilt.c

index 42294ee..b2e5130 100644 (file)
@@ -511,7 +511,7 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
     /* We want the connection cache to have plenty room. Before we supported
        the shared cache every single easy handle had 5 entries in their cache
        by default. */
-    int newmax = multi->num_easy * 4;
+    long newmax = multi->num_easy * 4;
 
     if(multi->maxconnects && (multi->maxconnects < newmax))
       /* don't grow beyond the allowed size */
@@ -520,9 +520,11 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
     if(newmax > multi->connc->num) {
       /* we only do this is we can in fact grow the cache */
       CURLcode res = Curl_ch_connc(easy_handle, multi->connc, newmax);
-      if(res != CURLE_OK)
-        /* TODO: we need to do some cleaning up here! */
-        return CURLM_OUT_OF_MEMORY;
+      if(res != CURLE_OK) {
+        /* FIXME: may need to do more cleanup here */
+        curl_multi_remove_handle(multi_handle, easy_handle);
+        return res;
+      }
     }
   }
 
index bd54f88..b4e1c07 100644 (file)
@@ -320,8 +320,8 @@ static int juggle(curl_socket_t *sockfdp,
         nread_stdin = 0;
         do {
           /* get data in the buffer at the correct position */
-          ssize_t rc = read(fileno(stdin), &buffer[nread_stdin],
-                            buffer_len - nread_stdin);
+          rc = read(fileno(stdin), &buffer[nread_stdin],
+                    buffer_len - nread_stdin);
           logmsg("read %d bytes", rc);
           if(rc <= 0)
             return FALSE;