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);
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);
Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
--
Thanks,
David / dhildenb