From 8f95edaabd3841c8e5db26d6b372611f70c7b3a6 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Fri, 31 Jul 2009 14:45:41 +0000 Subject: oops, these two were missed in the last cleanup. Signed-off-by: Stefan Reinauer Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4475 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- payloads/libpayload/libc/malloc.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'payloads/libpayload/libc/malloc.c') diff --git a/payloads/libpayload/libc/malloc.c b/payloads/libpayload/libc/malloc.c index 4cb71f6ff4..28b0974752 100644 --- a/payloads/libpayload/libc/malloc.c +++ b/payloads/libpayload/libc/malloc.c @@ -271,8 +271,14 @@ static struct align_region_t* align_regions = 0; static struct align_region_t *allocate_region(struct align_region_t *old_first, int alignment, int num_elements) { struct align_region_t *new_region = malloc(sizeof(struct align_region_t)); + if (!new_region) + return NULL; new_region->alignment = alignment; new_region->start = malloc((num_elements+1) * alignment + num_elements); + if (!new_region->start) { + free(new_region); + return NULL; + } new_region->start_data = (void*)((u32)(new_region->start + num_elements + alignment - 1) & (~(alignment-1))); new_region->size = num_elements * alignment; new_region->free = num_elements; -- cgit v1.2.3