From: René Scharfe Date: Thu, 10 Aug 2017 10:23:45 GMT Subject: [PATCH] win32: plug memory leak on realloc() failure in syslog() Message-ID: <245410ce-1f4c-f2a9-fd8d-98ff2d2c0335@web.de> If realloc() fails then the original buffer is still valid. Free it before exiting the function. Signed-off-by: Rene Scharfe --- compat/win32/syslog.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat/win32/syslog.c b/compat/win32/syslog.c index 6c7c9b6053..161978d720 100644 --- a/compat/win32/syslog.c +++ b/compat/win32/syslog.c @@ -43,8 +43,10 @@ void syslog(int priority, const char *fmt, ...) va_end(ap); while ((pos = strstr(str, "%1")) != NULL) { + char *oldstr = str; str = realloc(str, st_add(++str_len, 1)); if (!str) { + free(oldstr); warning_errno("realloc failed"); return; } -- 2.14.0