]> git.deb.at Git - pkg/abook.git/blobdiff - xmalloc.c
vcard built-in import: fix segfaults when a subset of vcard ADR fields
[pkg/abook.git] / xmalloc.c
index ca784be299a418063bc5fb4478a7e5959136e11e..3a34e1ce187a864a029c434a221a4c4fd2fbe0db 100644 (file)
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -149,3 +149,21 @@ xstrdup(const char *s)
        return (char *)memcpy(new, s, len + 1);
 }
 
+char *
+xstrndup(const char *s, size_t len)
+{
+       char *new;
+       size_t n = strlen(s);
+
+       if(n > len)
+               n = len;
+
+       new = xmalloc_inc(n, 1);
+       if(new == NULL)
+               return NULL;
+
+       memcpy(new, s, n);
+       new[n] = '\0';
+
+       return new;
+}