From ed7830061e2e2d4ec3b0867157995805b066cf8d Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Tue, 18 Sep 2018 09:06:07 +0200 Subject: [PATCH] darwinssl: Fix realloc memleak The reallocation was using the input pointer for the return value, which leads to a memory leak on reallication failure. Fix by instead use the safe internal API call Curl_saferealloc(). Closes #3005 Reviewed-by: Daniel Stenberg Reviewed-by: Nick Zitzmann --- lib/vtls/darwinssl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/vtls/darwinssl.c b/lib/vtls/darwinssl.c index ae8a5cc1e..3eee53a02 100644 --- a/lib/vtls/darwinssl.c +++ b/lib/vtls/darwinssl.c @@ -120,6 +120,7 @@ #include "vtls.h" #include "darwinssl.h" #include "curl_printf.h" +#include "strdup.h" #include "curl_memory.h" /* The last #include file should be: */ @@ -2056,7 +2057,7 @@ static int read_cert(const char *file, unsigned char **out, size_t *outlen) if(len + n >= cap) { cap *= 2; - data = realloc(data, cap); + data = Curl_saferealloc(data, cap); if(!data) { close(fd); return -1;