ref: e00c9ba79ca5f6508e3270d529d144fd566ce158
parent: 6d1404397f3c3433334418f56048bead007729ac
author: Tor Andersson <tor.andersson@artifex.com>
date: Sat Apr 17 17:42:49 EDT 2021
Don't call realloc with size=0 to free data. Newer versions of the C spec and POSIX have changed the behavior of realloc called with size 0 to be implementation defined.
--- a/jsstate.c
+++ b/jsstate.c
@@ -10,15 +10,10 @@
static void *js_defaultalloc(void *actx, void *ptr, int size)
{
-#ifndef __has_feature
-#define __has_feature(x) 0
-#endif
-#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
if (size == 0) {
free(ptr);
return NULL;
}
-#endif
return realloc(ptr, (size_t)size);
}