[PATCH] string: Add tests for zero length string inputs
Paul Eggert
eggert@cs.ucla.edu
Mon Sep 22 17:49:00 GMT 2014
On 09/22/2014 09:09 AM, Richard Earnshaw wrote:
> Valid pointers is more than just non-NULL. In particular, it implies
> that is safe to dereference the addressed byte in a source operand even
> when the length parameter is zero.
I just reread C99 7.1.4 clause 1 and 7.21.2 clause 2, and I don't see
that implication. For example, the following program appears to be
strictly conforming:
#include <string.h>
char src[1];
char dst[1];
int
main (void)
{
memcpy (dst, src + 1, 0);
return 0;
}
Here, src + 1 is a valid pointer even though one cannot safely
dereference it. So it appears to be reasonable to check that memcpy
doesn't dereference the source when the size is zero.
More information about the Libc-alpha
mailing list