Source
Fix bugs in strndup implementation
https://git.lysator.liu.se/lsh/lsh/commit/8a0cc32f349aac3c8c3084fdb380c9d1a2338d91
--- src/argp/strndup.c.orig
+++ src/argp/strndup.c
char *end = memchr(s, 0, size);
if (end)
- /* Length + 1 */
- size = end - s + 1;
+ /* strlen, i.e., excluding the terminating NUL. */
+ size = end - s;
- r = malloc(size);
+ r = malloc(size+1);
- if (size)
+ if (r)
{
- memcpy(r, s, size-1);
- r[size-1] = '\0';
+ memcpy(r, s, size);
+ r[size] = '\0';
}
return r;
}