From 8f7137e4e4850e17eea8c045865885bb1bc2f3bc Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 28 Jan 2016 13:36:12 -0600 Subject: Bugfix I forgot to checkin, plus a wrapper function. --- lib/xwrap.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'lib/xwrap.c') diff --git a/lib/xwrap.c b/lib/xwrap.c index a20d4b6b..65e3018d 100644 --- a/lib/xwrap.c +++ b/lib/xwrap.c @@ -21,9 +21,9 @@ void xstrncpy(char *dest, char *src, size_t size) void xstrncat(char *dest, char *src, size_t size) { - long len = strlen(src); + long len = strlen(dest); - if (len+strlen(dest)+1 > size) + if (len+strlen(src)+1 > size) error_exit("'%s%s' > %ld bytes", dest, src, (long)size); strcpy(dest+len, src); } @@ -80,6 +80,14 @@ char *xstrdup(char *s) return xstrndup(s, strlen(s)); } +void *xmemdup(void *s, long len) +{ + void *ret = xmalloc(len); + memcpy(ret, s, len); + + return ret; +} + // Die unless we can allocate enough space to sprintf() into. char *xmprintf(char *format, ...) { -- cgit v1.2.3