From: Vladimír Čunát Date: Tue, 19 Feb 2019 19:27:50 +0000 (+0100) Subject: lib/utils kr_memreserve(): fix a ubsan nitpick X-Git-Tag: v4.0.0~28^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=95da3e0700ab251d3abf87fb8f862d7e18a429e0;p=thirdparty%2Fknot-resolver.git lib/utils kr_memreserve(): fix a ubsan nitpick --- diff --git a/lib/utils.c b/lib/utils.c index 09194bf0e..46b97f673 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -229,8 +229,10 @@ int kr_memreserve(void *baton, char **mem, size_t elm_size, size_t want, size_t size_t next_size = array_next_count(want); void *mem_new = mm_alloc(pool, next_size * elm_size); if (mem_new != NULL) { - memcpy(mem_new, *mem, (*have)*(elm_size)); - mm_free(pool, *mem); + if (*mem) { /* 0-length memcpy from NULL isn't technically OK */ + memcpy(mem_new, *mem, (*have)*(elm_size)); + mm_free(pool, *mem); + } *mem = mem_new; *have = next_size; return 0;