On 04/11/19 10:20, Janosch Frank wrote: > 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); Do we want to return NULL instead on !size? This is how malloc(3) is documented. Paolo > 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); >