]> granicus.if.org Git - curl/commitdiff
Curl_add_buffer_send: avoid possible NULL dereference
authorDaniel Stenberg <daniel@haxx.se>
Thu, 31 Mar 2016 08:00:55 +0000 (10:00 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 31 Mar 2016 08:10:58 +0000 (10:10 +0200)
... as we check for a NULL pointer below, we move the derefence to after
the check. Detected by PVS Studio.

Reported-by: Alexis La Goutte
lib/http.c

index 22ef44731b6076670b4f85e53a2993c515711d85..73d66256923dd8785d092b80debe63e7919e8484 100644 (file)
@@ -1133,10 +1133,6 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
                    ptr+headlen, bodylen, conn);
       }
     }
-    if(bodylen)
-      /* since we sent a piece of the body here, up the byte counter for it
-         accordingly */
-      http->writebytecount += bodylen;
 
     /* 'amount' can never be a very large value here so typecasting it so a
        signed 31 bit value should not cause problems even if ssize_t is
@@ -1144,6 +1140,10 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
     *bytes_written += (long)amount;
 
     if(http) {
+      /* if we sent a piece of the body here, up the byte counter for it
+         accordingly */
+      http->writebytecount += bodylen;
+
       if((size_t)amount != size) {
         /* The whole request could not be sent in one system call. We must
            queue it up and send it later when we get the chance. We must not