From: Daniel Stenberg Date: Tue, 13 Sep 2016 21:00:50 +0000 (+0200) Subject: curl_easy_unescape: deny negative string lengths as input X-Git-Tag: curl-7_50_3~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=01cf1308ee2e792c77bb1d2c9218c56a30fd40ae;p=thirdparty%2Fcurl.git curl_easy_unescape: deny negative string lengths as input CVE-2016-7167 Bug: https://curl.haxx.se/docs/adv_20160914.html --- diff --git a/lib/escape.c b/lib/escape.c index 63edd84fa3..e61260d7c9 100644 --- a/lib/escape.c +++ b/lib/escape.c @@ -217,14 +217,16 @@ char *curl_easy_unescape(struct Curl_easy *data, const char *string, int length, int *olen) { char *str = NULL; - size_t inputlen = length; - size_t outputlen; - CURLcode res = Curl_urldecode(data, string, inputlen, &str, &outputlen, - FALSE); - if(res) - return NULL; - if(olen) - *olen = curlx_uztosi(outputlen); + if(length >= 0) { + size_t inputlen = length; + size_t outputlen; + CURLcode res = Curl_urldecode(data, string, inputlen, &str, &outputlen, + FALSE); + if(res) + return NULL; + if(olen) + *olen = curlx_uztosi(outputlen); + } return str; }