memccpy would return a pointer over the given size when c is not found in the source buffer and n reaches 0.
@@ -29,6 +29,6 @@ void *memccpy(void *restrict dest, const void *restrict src, int c, size_t n)
#endif
for (; n && (*d=*s)!=c; n--, s++, d++);
tail:
- if (*s==c) return d+1;
+ if (n && *s==c) return d+1;
return 0;
}