mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-23 10:57:14 +08:00
MALLOC(9): Return valid pointer for malloc(0), etc.
This commit is contained in:
parent
f0d189ca93
commit
9fd69c14ab
@ -74,7 +74,7 @@ malloc_uninit(void *data)
|
|||||||
void *
|
void *
|
||||||
_bsd_malloc(unsigned long size, struct malloc_type *mtp, int flags)
|
_bsd_malloc(unsigned long size, struct malloc_type *mtp, int flags)
|
||||||
{
|
{
|
||||||
void *p = malloc(size);
|
void *p = malloc(size > 0 ? size : 1);
|
||||||
|
|
||||||
if ((flags & M_ZERO) != 0 && p != NULL) {
|
if ((flags & M_ZERO) != 0 && p != NULL) {
|
||||||
memset(p, 0, size);
|
memset(p, 0, size);
|
||||||
@ -88,7 +88,7 @@ void *
|
|||||||
_bsd_realloc( void *addr, unsigned long size,
|
_bsd_realloc( void *addr, unsigned long size,
|
||||||
struct malloc_type *type, int flags)
|
struct malloc_type *type, int flags)
|
||||||
{
|
{
|
||||||
void *p = realloc(addr, size);
|
void *p = realloc(addr, size > 0 ? size : 1);
|
||||||
|
|
||||||
if ((flags & M_ZERO) != 0 && p != NULL) {
|
if ((flags & M_ZERO) != 0 && p != NULL) {
|
||||||
memset(p, 0, size);
|
memset(p, 0, size);
|
||||||
@ -102,7 +102,7 @@ void *
|
|||||||
_bsd_reallocf( void *addr, unsigned long size,
|
_bsd_reallocf( void *addr, unsigned long size,
|
||||||
struct malloc_type *type, int flags)
|
struct malloc_type *type, int flags)
|
||||||
{
|
{
|
||||||
void *p = realloc(addr, size);
|
void *p = realloc(addr, size > 0 ? size : 1);
|
||||||
|
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
free(addr,NULL);
|
free(addr,NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user