]> granicus.if.org Git - curl/commitdiff
url: fixed a memory leak on OOM while setting CURLOPT_BUFFERSIZE
authorDan Fandrich <dan@coneharvesters.com>
Sat, 29 Apr 2017 16:52:51 +0000 (18:52 +0200)
committerDan Fandrich <dan@coneharvesters.com>
Sat, 29 Apr 2017 16:52:51 +0000 (18:52 +0200)
lib/url.c

index f5998d6b113b451a072ef354b398e92939cc8cef..4fc2f4cad5602264b309fdefa0d370a4824dfd86 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -2293,12 +2293,13 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option,
 
     /* Resize only if larger than default buffer size. */
     if(data->set.buffer_size > BUFSIZE) {
-      data->state.buffer = realloc(data->state.buffer,
-                                   data->set.buffer_size + 1);
-      if(!data->state.buffer) {
+      char *newbuff = realloc(data->state.buffer, data->set.buffer_size + 1);
+      if(!newbuff) {
         DEBUGF(fprintf(stderr, "Error: realloc of buffer failed\n"));
         result = CURLE_OUT_OF_MEMORY;
       }
+      else
+        data->state.buffer = newbuff;
     }
 
     break;