From 558c6f56e27ffd5a332108243f0be14808082952 Mon Sep 17 00:00:00 2001 From: John Scott Date: Fri, 16 Oct 2020 21:20:33 -0400 Subject: [PATCH] tcc_mallocz: clear with memset only if nonzero size Even if non-NULL, dereferencing the pointer from malloc(0) or passing it to memset() may invoke undefined behavior. --- libtcc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libtcc.c b/libtcc.c index ffd0f376..36986328 100644 --- a/libtcc.c +++ b/libtcc.c @@ -245,7 +245,8 @@ PUB_FUNC void *tcc_mallocz(unsigned long size) { void *ptr; ptr = tcc_malloc(size); - memset(ptr, 0, size); + if (size) + memset(ptr, 0, size); return ptr; }