diff options
author | Kevin Buettner <kevinb@redhat.com> | 2001-03-10 01:22:11 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2001-03-10 01:22:11 +0000 |
commit | d7fa9de08de666af5647be3053c6b3f04996277b (patch) | |
tree | 0d19d5f8e5adc0fbd1a0ba0b580b5c6dd2956264 | |
parent | f8241bd1436ed7a5e6d387948651b1e9784d77f4 (diff) | |
download | gdb-d7fa9de08de666af5647be3053c6b3f04996277b.zip gdb-d7fa9de08de666af5647be3053c6b3f04996277b.tar.gz gdb-d7fa9de08de666af5647be3053c6b3f04996277b.tar.bz2 |
Committed.
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/utils.c | 36 |
2 files changed, 30 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dafb955..97f93bd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2001-03-09 Kevin Buettner <kevinb@redhat.com> + + * utils.c (xmrealloc, xcalloc): Return NULL for zero-sized requests. + 2001-03-09 Andrew Cagney <ac131313@redhat.com> * MAINTAINERS (Write After Approval): Update Philip Blundell. diff --git a/gdb/utils.c b/gdb/utils.c index 5ece78d..b81e3fd 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1044,17 +1044,26 @@ xmrealloc (PTR md, PTR ptr, long size) { register PTR val; - if (ptr != NULL) + if (size == 0) { - val = mrealloc (md, ptr, size); + if (ptr != NULL) + mfree (md, ptr); + val = NULL; } else { - val = mmalloc (md, size); - } - if (val == NULL) - { - nomem (size); + if (ptr != NULL) + { + val = mrealloc (md, ptr, size); + } + else + { + val = mmalloc (md, size); + } + if (val == NULL) + { + nomem (size); + } } return (val); } @@ -1073,9 +1082,16 @@ xmalloc (size_t size) PTR xcalloc (size_t number, size_t size) { - void *mem = mcalloc (NULL, number, size); - if (mem == NULL) - nomem (number * size); + void *mem; + + if (number == 0 || size == 0) + mem = NULL; + else + { + mem = mcalloc (NULL, number, size); + if (mem == NULL) + nomem (number * size); + } return mem; } |