Fix return value.

Return a valid pointer (not NULL) when the character "c" is at the end of "src".

Change-Id: Iab0b677943f2c8a9fbb255c44689f5d6dc3535d7
Example:
  memccpy(dest, "xzy", 'y', 3) should return dest+3 rather than null.
This commit is contained in:
rich cannings 2010-08-31 15:19:38 -07:00
parent 6a51defa03
commit e44cb1a35c

View File

@ -38,18 +38,9 @@ void *memccpy(void *dst, const void *src, int c, size_t n)
for (;;) {
if (ch == c || p >= p_end) break;
*q++ = ch = *p++;
if (ch == c || p >= p_end) break;
*q++ = ch = *p++;
if (ch == c || p >= p_end) break;
*q++ = ch = *p++;
if (ch == c || p >= p_end) break;
*q++ = ch = *p++;
}
if (p >= p_end)
if (p >= p_end && ch != c)
return NULL;
return q;