]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib/utils kr_memreserve(): fix a ubsan nitpick
authorVladimír Čunát <vladimir.cunat@nic.cz>
Tue, 19 Feb 2019 19:27:50 +0000 (20:27 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Tue, 5 Mar 2019 16:01:41 +0000 (17:01 +0100)
lib/utils.c

index 09194bf0edce5b09dc620c4907902ed043177bcb..46b97f673a98ed07c3a7c3c4344bc4554b88c865 100644 (file)
@@ -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;