From: Daniel Stenberg Date: Thu, 31 Mar 2016 08:00:55 +0000 (+0200) Subject: Curl_add_buffer_send: avoid possible NULL dereference X-Git-Tag: curl-7_49_0~257 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b22a9547364a5aa0b939feb8e29fd072f615272f;p=thirdparty%2Fcurl.git Curl_add_buffer_send: avoid possible NULL dereference ... 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 --- diff --git a/lib/http.c b/lib/http.c index 22ef44731b..73d6625692 100644 --- a/lib/http.c +++ b/lib/http.c @@ -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