X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=xmalloc.c;h=c2ca4a66e932a32d99716d851914b13ca05da6f0;hb=7f6138ffd4935043382ce5f867ee9e177e0a9787;hp=a762d0a2408b03d6c8ab459a869526255aacb0eb;hpb=6419d6f7beb6af32facab158fcfb4f2dc973ccf0;p=~andy%2Ffetchmail diff --git a/xmalloc.c b/xmalloc.c index a762d0a2..c2ca4a66 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -31,7 +31,7 @@ xmalloc (size_t n) if (p == (XMALLOCTYPE *) 0) { report(stderr, GT_("malloc failed\n")); - exit(PS_UNDEFINED); + abort(); } return(p); } @@ -45,7 +45,7 @@ xrealloc (XMALLOCTYPE *p, size_t n) if (p == (XMALLOCTYPE *) 0) { report(stderr, GT_("realloc failed\n")); - exit(PS_UNDEFINED); + abort(); } return p; } @@ -69,4 +69,16 @@ char *strdup(const char *s) } #endif /* !HAVE_STRDUP */ +char *xstrndup(const char *s, size_t len) +{ + char *p; + size_t l = strlen(s); + + if (len < l) l = len; + p = (char *)xmalloc(l + 1); + memcpy(p, s, l); + p[l] = '\0'; + return p; +} + /* xmalloc.c ends here */