Skip to content

Commit

Permalink
bzip2/lzma/gzip: pre-boot malloc doesn't return NULL on failure
Browse files Browse the repository at this point in the history
The trivial malloc implementation used in the pre-boot environment by the
decompressors returns a bad pointer on failure (falling through after
calling error).  This is doubly wrong - the callers expect malloc to
return NULL on failure, second the error function is intended to be
used by the decompressors to propagate errors to *their* callers.  The
decompressors have no access to any state set by the error function.

Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
LKML-Reference: <4b26b1ef.hIInb2AYPMtImAJO%phillip@lougher.demon.co.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
  • Loading branch information
Phillip Lougher authored and H. Peter Anvin committed Dec 15, 2009
1 parent 2363756 commit c1e7c3a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions include/linux/decompress/mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ static void *malloc(int size)
void *p;

if (size < 0)
error("Malloc error");
return NULL;
if (!malloc_ptr)
malloc_ptr = free_mem_ptr;

Expand All @@ -35,7 +35,7 @@ static void *malloc(int size)
malloc_ptr += size;

if (free_mem_end_ptr && malloc_ptr >= free_mem_end_ptr)
error("Out of memory");
return NULL;

malloc_count++;
return p;
Expand Down

0 comments on commit c1e7c3a

Please sign in to comment.