]> xenbits.xensource.com Git - freebsd.git/commitdiff
realloc(x, 0) should not return NULL.
authorkib <kib@FreeBSD.org>
Tue, 17 Sep 2019 18:36:29 +0000 (18:36 +0000)
committerkib <kib@FreeBSD.org>
Tue, 17 Sep 2019 18:36:29 +0000 (18:36 +0000)
See http://www.open-std.org/jtc1/sc22/wg14/www/docs/summary.htm#dr_400.
Upstream jemalloc issue is opened by emaste at
https://github.com/jemalloc/jemalloc/issues/1629.

Reviewed by: emaste
PR: 240456
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
DIfferential revision: https://reviews.freebsd.org/D21632

contrib/jemalloc/src/jemalloc.c

index e0ad297be93a1ab492f42a8f3779a5a076cb516c..28763a5f050490406980136e909e7b14d819a72c 100644 (file)
@@ -2299,21 +2299,6 @@ je_realloc(void *ptr, size_t size) {
        LOG("core.realloc.entry", "ptr: %p, size: %zu\n", ptr, size);
 
        if (unlikely(size == 0)) {
-               if (ptr != NULL) {
-                       /* realloc(ptr, 0) is equivalent to free(ptr). */
-                       UTRACE(ptr, 0, 0);
-                       tcache_t *tcache;
-                       tsd_t *tsd = tsd_fetch();
-                       if (tsd_reentrancy_level_get(tsd) == 0) {
-                               tcache = tcache_get(tsd);
-                       } else {
-                               tcache = NULL;
-                       }
-                       ifree(tsd, ptr, tcache, true);
-
-                       LOG("core.realloc.exit", "result: %p", NULL);
-                       return NULL;
-               }
                size = 1;
        }