oops, these two were missed in the last cleanup.
authorStefan Reinauer <stepan@coresystems.de>
Fri, 31 Jul 2009 14:45:41 +0000 (14:45 +0000)
committerStefan Reinauer <stepan@openbios.org>
Fri, 31 Jul 2009 14:45:41 +0000 (14:45 +0000)
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4475 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/libc/malloc.c

index 4cb71f6ff43c011c58c48e86e36cccfc97037433..28b0974752a1f866815565ffa6a827cc74859ea0 100644 (file)
@@ -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;