summaryrefslogtreecommitdiff
path: root/lib/realloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/realloc.c')
-rw-r--r--lib/realloc.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/realloc.c b/lib/realloc.c
new file mode 100644
index 0000000..79bfd28
--- /dev/null
+++ b/lib/realloc.c
@@ -0,0 +1,29 @@
+#include <config.h>
+#undef realloc
+#undef malloc
+
+#include <stdlib.h>
+
+#include <errno.h>
+
+void * rpl_realloc (void *p, size_t n)
+{
+ void *result;
+
+ if (n == 0)
+ {
+ n = 1;
+ }
+
+ if (p == NULL)
+ {
+ result = malloc (n);
+ }
+ else
+ result = realloc (p, n);
+
+ if (result == NULL)
+ errno = ENOMEM;
+
+ return result;
+}