* derivatives without specific, written prior permission.
*/
+#include <config.h>
#include "util.h"
#include <stdarg.h>
#include <stdio.h>
return p;
}
+void *
+xmemdup(const void *p_, size_t size)
+{
+ void *p = xmalloc(size);
+ memcpy(p, p_, size);
+ return p;
+}
+
char *
-xstrdup(const char *s_)
+xmemdup0(const char *p_, size_t length)
{
- size_t size = strlen(s_) + 1;
- char *s = xmalloc(size);
- memcpy(s, s_, size);
- return s;
+ char *p = xmalloc(length + 1);
+ memcpy(p, p_, length);
+ p[length] = '\0';
+ return p;
+}
+
+char *
+xstrdup(const char *s)
+{
+ return xmemdup0(s, strlen(s));
}
char *