realloc(x, 0) should not return NULL.
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
This commit is contained in:
parent
55894117b1
commit
0edc114ac0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=352456
@ -2299,21 +2299,6 @@ je_realloc(void *ptr, size_t size) {
|
|||||||
LOG("core.realloc.entry", "ptr: %p, size: %zu\n", ptr, size);
|
LOG("core.realloc.entry", "ptr: %p, size: %zu\n", ptr, size);
|
||||||
|
|
||||||
if (unlikely(size == 0)) {
|
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;
|
size = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user