mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-31 06:14:39 +01:00
bzip2/lzma/gzip: pre-boot malloc doesn't return NULL on failure
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 <[email protected]> LKML-Reference: <4b26b1ef.hIInb2AYPMtImAJO%[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
This commit is contained in:
1 parent
23637568ad
commit
c1e7c3ae59
1 file changed
+2
-2
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user