提交 a874cac3 编写于 作者: H Heinrich Schuchardt 提交者: Tom Rini

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: NHeinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
上级 06feb5d0
...@@ -149,7 +149,7 @@ gAllocatedSize)) ...@@ -149,7 +149,7 @@ gAllocatedSize))
{ {
new_address = findRegion (new_address, new_size); new_address = findRegion (new_address, new_size);
if (new_address == 0) if (!new_address)
return (void*)-1; return (void*)-1;
gAddressBase = gNextAddress = gAddressBase = gNextAddress =
...@@ -175,7 +175,7 @@ gAllocatedSize)) ...@@ -175,7 +175,7 @@ gAllocatedSize))
(size + gNextAddress - (size + gNextAddress -
AlignPage (gNextAddress)), AlignPage (gNextAddress)),
MEM_COMMIT, PAGE_READWRITE); MEM_COMMIT, PAGE_READWRITE);
if (res == 0) if (!res)
return (void*)-1; return (void*)-1;
} }
tmp = (void*)gNextAddress; tmp = (void*)gNextAddress;
...@@ -1461,7 +1461,7 @@ Void_t* mALLOc(bytes) size_t bytes; ...@@ -1461,7 +1461,7 @@ Void_t* mALLOc(bytes) size_t bytes;
#if HAVE_MMAP #if HAVE_MMAP
/* If big and would otherwise need to extend, try to use mmap instead */ /* If big and would otherwise need to extend, try to use mmap instead */
if ((unsigned long)nb >= (unsigned long)mmap_threshold && if ((unsigned long)nb >= (unsigned long)mmap_threshold &&
(victim = mmap_chunk(nb)) != 0) (victim = mmap_chunk(nb)))
return chunk2mem(victim); return chunk2mem(victim);
#endif #endif
...@@ -1671,7 +1671,10 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes; ...@@ -1671,7 +1671,10 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
mchunkptr fwd; /* misc temp for linking */ mchunkptr fwd; /* misc temp for linking */
#ifdef REALLOC_ZERO_BYTES_FREES #ifdef REALLOC_ZERO_BYTES_FREES
if (bytes == 0) { fREe(oldmem); return 0; } if (!bytes) {
fREe(oldmem);
return NULL;
}
#endif #endif
if ((long)bytes < 0) return NULL; if ((long)bytes < 0) return NULL;
...@@ -1703,7 +1706,8 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes; ...@@ -1703,7 +1706,8 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
if(oldsize - SIZE_SZ >= nb) return oldmem; /* do nothing */ if(oldsize - SIZE_SZ >= nb) return oldmem; /* do nothing */
/* Must alloc, copy, free. */ /* Must alloc, copy, free. */
newmem = mALLOc(bytes); newmem = mALLOc(bytes);
if (newmem == 0) return 0; /* propagate failure */ if (!newmem)
return NULL; /* propagate failure */
MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ); MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ);
munmap_chunk(oldp); munmap_chunk(oldp);
return newmem; return newmem;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册