Let's test for size and alignment in memalign to catch invalid input data. Also we need to test for NULL after calling the memalign function of the registered alloc operations. Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> --- Tested only under s390, tests under other architectures are highly appreciated. --- lib/alloc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/alloc.c b/lib/alloc.c index ecdbbc4..eba9dd6 100644 --- a/lib/alloc.c +++ b/lib/alloc.c @@ -46,6 +46,7 @@ void *memalign(size_t alignment, size_t size) uintptr_t blkalign; uintptr_t mem; + assert(size && alignment); assert(alloc_ops && alloc_ops->memalign); if (alignment <= sizeof(uintptr_t)) alignment = sizeof(uintptr_t); @@ -56,6 +57,8 @@ void *memalign(size_t alignment, size_t size) size = ALIGN(size + METADATA_EXTRA, alloc_ops->align_min); p = alloc_ops->memalign(blkalign, size); + assert(p != NULL); + /* Leave room for metadata before aligning the result. */ mem = (uintptr_t)p + METADATA_EXTRA; mem = ALIGN(mem, alignment); -- 2.20.1