diff --git a/src/rbtree.c b/src/rbtree.c index a3e2f3c..7d8cfa5 100644 --- a/src/rbtree.c +++ b/src/rbtree.c @@ -10,7 +10,7 @@ * Based on the work of Julienne Walker's rbtree implementation * http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx */ - +#include #include "xalloc.h" #include "debug.h" #include "rbtree.h" diff --git a/src/xalloc.c b/src/xalloc.c index a9a45d8..508ec00 100644 --- a/src/xalloc.c +++ b/src/xalloc.c @@ -68,9 +68,12 @@ char* xstrdup(const char *s) { CHECK_INPUT(s); - char *c = strdup(s); - CHECK(c); - return c; + size_t len = strlen(s) + 1; + char *dest = xmalloc(len); + + CHECK(dest); + memcpy(dest, s, len); + return dest; bail: die_errno("xstrdup"); } @@ -79,7 +82,8 @@ void* xmemdup(const void *src, size_t size) { CHECK_INPUT(src); - void *dest = xmalloc(size); + void *dest = malloc(size); + CHECK(dest); memcpy(dest, src, size); return dest; bail: