From: Seonah Moon Date: Mon, 2 Jul 2018 04:54:24 +0000 (+0900) Subject: ... leaving the k->str could lead to buffer over-reads later on. X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fcurl.git;a=commitdiff_plain;h=2b94d24a10d6e56a14c3d25349bfb0f482c781db ... leaving the k->str could lead to buffer over-reads later on. CVE: CVE-2018-1000301 Assisted-by: Max Dymond Detected by OSS-Fuzz. Bug: https://curl.haxx.se/docs/adv_2018-b138.html Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105 Change-Id: I0bd3b891aef2bf08fdb485d135e695c2eeab86a7 --- diff --git a/lib/http.c b/lib/http.c index 841f6cc..dc10f5f 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2966,6 +2966,8 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, { CURLcode result; struct SingleRequest *k = &data->req; + ssize_t onread = *nread; + char *ostr = k->str; /* header line within buffer loop */ do { @@ -3030,7 +3032,9 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, else { /* this was all we read so it's all a bad header */ k->badheader = HEADER_ALLBAD; - *nread = (ssize_t)rest_length; + *nread = onread; + k->str = ostr; + return CURLE_OK; } break; }