]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix the real allocation size in OpenBSD rallocx shim
authorOndřej Surý <ondrej@sury.org>
Mon, 12 Jul 2021 06:43:14 +0000 (08:43 +0200)
committerOndřej Surý <ondrej@sury.org>
Mon, 12 Jul 2021 06:43:14 +0000 (08:43 +0200)
In the rallocx() shim for OpenBSD (that's the only platform that doesn't
have malloc_size() or malloc_usable_size() equivalent), the newly
allocated size was missing the extra size_t member for storing the
allocation size leading to size_t sized overflow at the end of the
reallocated memory chunk.

lib/isc/jemalloc_shim.h

index 11f809966144fede5496f7442e36b1f141d1ee0b..d04ac22ac3e961c86750b417072af103adec8a84 100644 (file)
@@ -106,7 +106,7 @@ static inline void *
 rallocx(void *ptr, size_t size, int flags) {
        UNUSED(flags);
 
-       size_t *__ptr = realloc(&((size_t *)ptr)[-1], size);
+       size_t *__ptr = realloc(&((size_t *)ptr)[-1], size + sizeof(size_t));
        REQUIRE(__ptr != NULL);
        __ptr[0] = size;