From: Daniel Stenberg Date: Tue, 3 Sep 2019 20:59:32 +0000 (+0200) Subject: security:read_data fix bad realloc() X-Git-Tag: curl-7_66_0~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9069838b30fb3b48af0123e39f664cea683254a5;p=thirdparty%2Fcurl.git security:read_data fix bad realloc() ... that could end up a double-free CVE-2019-5481 Bug: https://curl.haxx.se/docs/CVE-2019-5481.html --- diff --git a/lib/security.c b/lib/security.c index 550ea2da8d..c5e4e135df 100644 --- a/lib/security.c +++ b/lib/security.c @@ -191,7 +191,6 @@ static CURLcode read_data(struct connectdata *conn, struct krb5buffer *buf) { int len; - void *tmp = NULL; CURLcode result; result = socket_read(fd, &len, sizeof(len)); @@ -201,12 +200,11 @@ static CURLcode read_data(struct connectdata *conn, if(len) { /* only realloc if there was a length */ len = ntohl(len); - tmp = Curl_saferealloc(buf->data, len); + buf->data = Curl_saferealloc(buf->data, len); } - if(tmp == NULL) + if(!len || !buf->data) return CURLE_OUT_OF_MEMORY; - buf->data = tmp; result = socket_read(fd, buf->data, len); if(result) return result;