From: Daniel Stenberg Date: Wed, 12 Feb 2014 13:33:17 +0000 (+0100) Subject: chunked decoder: track overflows correctly X-Git-Tag: curl-7_36_0~165 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0ab97ba0090f2609760c33000181f08757336a48;p=curl chunked decoder: track overflows correctly The code didn't properly check the return codes to detect overflows so it could trigger incorrectly. Like on mingw32. Regression introduced in 345891edba (curl 7.35.0) Bug: http://curl.haxx.se/mail/lib-2014-02/0097.html Reported-by: LM --- diff --git a/lib/http_chunks.c b/lib/http_chunks.c index 47de95845..83e3f0eec 100644 --- a/lib/http_chunks.c +++ b/lib/http_chunks.c @@ -162,8 +162,8 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn, } ch->datasize=curlx_strtoofft(ch->hexbuffer, &endptr, 16); - if(errno == ERANGE) - /* over or underflow is an error */ + if((ch->datasize == CURL_OFF_T_MAX) && (errno == ERANGE)) + /* overflow is an error */ return CHUNKE_ILLEGAL_HEX; ch->state = CHUNK_LF; /* now wait for the CRLF */ }