]> granicus.if.org Git - curl/commitdiff
Fixed an OOM handling problem that cause test 11 to fail the torture test.
authorDan Fandrich <dan@coneharvesters.com>
Wed, 9 Jul 2008 18:33:35 +0000 (18:33 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Wed, 9 Jul 2008 18:33:35 +0000 (18:33 +0000)
CHANGES
lib/transfer.c

diff --git a/CHANGES b/CHANGES
index 475b0bad9479b4a76100b274d7436e70cf04eefe..8b9c8b323b89162f3b05079eb0f2e2595574623f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,9 @@
 
                                   Changelog
 
+Daniel Fandrich (9 Jul 2008)
+- Fixed an OOM handling problem that cause test 11 to fail the torture test.
+
 Daniel Fandrich (8 Jul 2008)
 - Fixed test 554 to pass the torture test.
 
index b45be0a5603075e1b24598d76f85041072598d95..11202af800f64d5f680af7d3992f91657cb3e293 100644 (file)
@@ -2398,17 +2398,21 @@ CURLcode Curl_perform(struct SessionHandle *data)
             if(data->req.newurl) {
               follow = FOLLOW_REDIR;
               newurl = strdup(data->req.newurl);
+              if (!newurl)
+                res = CURLE_OUT_OF_MEMORY;
             }
             else if(data->req.location) {
               follow = FOLLOW_FAKE;
               newurl = strdup(data->req.location);
+              if (!newurl)
+                res = CURLE_OUT_OF_MEMORY;
             }
           }
 
           /* in the above cases where 'newurl' gets assigned, we have a fresh
            * allocated memory pointed to */
         }
-        else {
+        if(res != CURLE_OK) {
           /* The transfer phase returned error, we mark the connection to get
            * closed to prevent being re-used. This is becasue we can't
            * possibly know if the connection is in a good shape or not now. */