From f94a9da8034c8f56980c40c9447368717998c094 Mon Sep 17 00:00:00 2001 From: "git@daemon.de" Date: Fri, 7 Feb 2014 16:55:56 +0100 Subject: [PATCH] added ucrealloc() --- include/pcp/mem.h | 2 ++ libpcp/mem.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/pcp/mem.h b/include/pcp/mem.h index 6bf2909..fc840ec 100644 --- a/include/pcp/mem.h +++ b/include/pcp/mem.h @@ -38,5 +38,7 @@ void *ucmalloc(size_t s); /* the same but it fills the pointer with random values */ void *urmalloc(size_t s); +/* resize a a pointer and fill the added remainder with zeroes */ +void *ucrealloc(void *d, size_t oldlen, size_t newlen); #endif /* _HAVE_PCP_MEM */ diff --git a/libpcp/mem.c b/libpcp/mem.c index 945d258..ce70be9 100644 --- a/libpcp/mem.c +++ b/libpcp/mem.c @@ -52,3 +52,16 @@ void *urmalloc(size_t s) { } +void *ucrealloc(void *d, size_t oldlen, size_t newlen) { + newlen = newlen * sizeof(unsigned char); + void *value = realloc (d, newlen); + + if (value == NULL) { + err(errno, "Cannot reallocate %ld bytes of memory", newlen); + exit(-1); + } + + memset (&value[oldlen], 0, newlen-oldlen); + + return value; +}