From a874cac3b45cbb6dd8bad05a5b42912acae6b7e4 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Fri, 10 Nov 2017 21:46:34 +0100 Subject: [PATCH] malloc: don't compare pointers to 0 0 is not a pointer. So do not compare pointers to 0. Do not return 0 from functions with a pointer return type. Problem identified with Coccinelle. Signed-off-by: Heinrich Schuchardt Reviewed-by: Bin Meng --- common/dlmalloc.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/common/dlmalloc.c b/common/dlmalloc.c index c37979b43f..b395eefbf8 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -149,7 +149,7 @@ gAllocatedSize)) { new_address = findRegion (new_address, new_size); - if (new_address == 0) + if (!new_address) return (void*)-1; gAddressBase = gNextAddress = @@ -175,7 +175,7 @@ gAllocatedSize)) (size + gNextAddress - AlignPage (gNextAddress)), MEM_COMMIT, PAGE_READWRITE); - if (res == 0) + if (!res) return (void*)-1; } tmp = (void*)gNextAddress; @@ -1461,7 +1461,7 @@ Void_t* mALLOc(bytes) size_t bytes; #if HAVE_MMAP /* If big and would otherwise need to extend, try to use mmap instead */ if ((unsigned long)nb >= (unsigned long)mmap_threshold && - (victim = mmap_chunk(nb)) != 0) + (victim = mmap_chunk(nb))) return chunk2mem(victim); #endif @@ -1671,7 +1671,10 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes; mchunkptr fwd; /* misc temp for linking */ #ifdef REALLOC_ZERO_BYTES_FREES - if (bytes == 0) { fREe(oldmem); return 0; } + if (!bytes) { + fREe(oldmem); + return NULL; + } #endif if ((long)bytes < 0) return NULL; @@ -1703,7 +1706,8 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes; if(oldsize - SIZE_SZ >= nb) return oldmem; /* do nothing */ /* Must alloc, copy, free. */ newmem = mALLOc(bytes); - if (newmem == 0) return 0; /* propagate failure */ + if (!newmem) + return NULL; /* propagate failure */ MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ); munmap_chunk(oldp); return newmem; -- 2.39.5