]> granicus.if.org Git - curl/commitdiff
better detection for when add_buffer() returns failure, and return when that
authorDaniel Stenberg <daniel@haxx.se>
Mon, 10 May 2004 10:49:35 +0000 (10:49 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 10 May 2004 10:49:35 +0000 (10:49 +0000)
happens

lib/http.c

index 5e663cb7d2975a41fa88eb04b59843348185b454..34d79a7e2ddc122cd1e1d5eb7ca99ae6ef28b7bd 100644 (file)
@@ -1886,19 +1886,29 @@ CURLcode Curl_http(struct connectdata *conn)
              This limit is no magic limit but only set to prevent really huge
              POSTs to get the data duplicated with malloc() and family. */
 
-          add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
+          result == add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
+          if(result)
+            return result;
 
-          if(!conn->bits.upload_chunky)
+          if(!conn->bits.upload_chunky) {
             /* We're not sending it 'chunked', append it to the request
                already now to reduce the number if send() calls */
-            add_buffer(req_buffer, data->set.postfields, (size_t)postsize);
+            result = add_buffer(req_buffer, data->set.postfields,
+                                (size_t)postsize);
+          }
           else {
             /* Append the POST data chunky-style */
-            add_bufferf(req_buffer, "%x\r\n", (int)postsize);
-            add_buffer(req_buffer, data->set.postfields, (size_t)postsize);
-            add_buffer(req_buffer, "\r\n0\r\n\r\n", 7); /* end of a chunked
-                                                           transfer stream */
+            result = add_bufferf(req_buffer, "%x\r\n", (int)postsize);
+            if(CURLE_OK == result)
+              result = add_buffer(req_buffer, data->set.postfields,
+                                  (size_t)postsize);
+            if(CURLE_OK == result)
+              result = add_buffer(req_buffer,
+                                  "\r\n0\r\n\r\n", 7); /* end of a chunked
+                                                          transfer stream */
           }
+          if(result)
+            return result;
         }
         else {
           /* A huge POST coming up, do data separate from the request */