X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=wrapper.c;h=0e3e20a3fd38f6f99da44483ee0bb9753f2b217a;hb=c444c16589f95ac22d8e3ffe603cd7f0613512ce;hp=c9be1400c005e25b003acecc0cb037dd2f07e56f;hpb=3a2dd481e51ed3ea01b84c7db4c661a0a3d5279c;p=git.git diff --git a/wrapper.c b/wrapper.c index c9be1400c..0e3e20a3f 100644 --- a/wrapper.c +++ b/wrapper.c @@ -34,6 +34,16 @@ void *xmalloc(size_t size) return ret; } +void *xmallocz(size_t size) +{ + void *ret; + if (size + 1 < size) + die("Data too large to fit into virtual memory space."); + ret = xmalloc(size + 1); + ((char*)ret)[size] = 0; + return ret; +} + /* * xmemdupz() allocates (len + 1) bytes of memory, duplicates "len" bytes of * "data" to the allocated memory, zero terminates the allocated memory, @@ -42,10 +52,7 @@ void *xmalloc(size_t size) */ void *xmemdupz(const void *data, size_t len) { - char *p = xmalloc(len + 1); - memcpy(p, data, len); - p[len] = '\0'; - return p; + return memcpy(xmallocz(len), data, len); } char *xstrndup(const char *str, size_t len)