From e2d41a4a599557b01ecf9e082876af6efe6887f1 Mon Sep 17 00:00:00 2001 From: Un1q32 <joey.t.reinhart@gmail.com> Date: Thu, 23 Jan 2025 15:03:49 -0500 Subject: [PATCH] NULL checking --- src/mem.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mem.h b/src/mem.h index dd6360fa..0ff7deb7 100644 --- a/src/mem.h +++ b/src/mem.h @@ -101,10 +101,12 @@ static inline void *dav1d_alloc_aligned_internal(const size_t sz, const size_t a // must be an integral multiple of alignment. return aligned_alloc(align, ROUND_UP(sz, align)); #else - char *ptr = (char *)malloc(sz + align + sizeof(void *)); - char *result = (char *)(((size_t)ptr + sizeof(void *) + align - 1) & ~(align - 1)); - ((char **)result)[-1] = ptr; - return result; + void *const buf = malloc(sz + align + sizeof(void *)); + if (!buf) return NULL; + + void *const ptr = (void *)(((uintptr_t)buf + sizeof(void *) + align - 1) & ~(align - 1)); + ((void **)ptr)[-1] = buf; + return ptr; #endif } @@ -114,7 +116,7 @@ static inline void dav1d_free_aligned_internal(void *ptr) { #elif HAVE_POSIX_MEMALIGN || HAVE_MEMALIGN || HAVE_ALIGNED_ALLOC free(ptr); #else - free(((void **)ptr)[-1]); + if (ptr) free(((void **)ptr)[-1]); #endif } -- GitLab