aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-06-23 14:17:57 +0200
committerFlorian Weimer <fweimer@redhat.com>2016-06-23 16:12:48 +0200
commit64ba17317dc9343f0958755ad04af71ec3da637b (patch)
tree9e6cecd5901282bc570be7f392a601cc52cfe1fc
parent9d52cb01f253c84e177fe2db8386deaea06a2596 (diff)
downloadglibc-64ba17317dc9343f0958755ad04af71ec3da637b.zip
glibc-64ba17317dc9343f0958755ad04af71ec3da637b.tar.gz
glibc-64ba17317dc9343f0958755ad04af71ec3da637b.tar.bz2
test-skeleton.c (xrealloc): Support realloc-as-free
If the requested size is zero, realloc returns NULL, but the deallocation is still successful, unless the pointer is also NULL, when realloc behaves as malloc (0).
-rw-r--r--ChangeLog4
-rw-r--r--test-skeleton.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f9edb4..4bfee94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2016-06-23 Florian Weimer <fweimer@redhat.com>
+ * test-skeleton.c (xrealloc): Support deallocation with n == 0.
+
+2016-06-23 Florian Weimer <fweimer@redhat.com>
+
* test-skeleton.c (xmalloc, xcalloc, xrealloc): Mark as
potentially unused.
diff --git a/test-skeleton.c b/test-skeleton.c
index 0be4af1..d9bf989 100644
--- a/test-skeleton.c
+++ b/test-skeleton.c
@@ -109,10 +109,10 @@ __attribute__ ((unused))
static void *
xrealloc (void *p, size_t n)
{
- p = realloc (p, n);
- if (p == NULL)
+ void *result = realloc (p, n);
+ if (result == NULL && (n > 0 || p == NULL))
oom_error ("realloc", n);
- return p;
+ return result;
}
/* Write a message to standard output. Can be used in signal