string/test-memcpy error reporting

Ryan S. Arnold ryan.arnold@gmail.com
Tue Aug 13 14:24:00 GMT 2013


On Thu, Aug 8, 2013 at 11:58 PM, Alan Modra <amodra@gmail.com> wrote:
> Using plain %s here runs the risk of segfaulting when displaying the
> string.  src and dst aren't zero terminated strings.
>
>         * string/test-memcpy.c (do_one_test): When reporting errors, print
>         string address and don't overrun end of string.
>
> diff --git a/string/test-memcpy.c b/string/test-memcpy.c
> index d121ef0..b7ebe5f 100644
> --- a/string/test-memcpy.c
> +++ b/string/test-memcpy.c
> @@ -63,8 +63,8 @@ do_one_test (impl_t *impl, char *dst, const char *src,
>
>    if (memcmp (dst, src, len) != 0)
>      {
> -      error (0, 0, "Wrong result in function %s dst \"%s\" src \"%s\"",
> -            impl->name, dst, src);
> +      error (0, 0, "Wrong result in function %s dst %p \"%.*s\" src %p \"%.*s\" len %zu",
> +            impl->name, dst, (int) len, dst, src, (int) len, src, len);
>        ret = 1;
>        return;
>      }
Seems like an obvious fix.  Ack.

Ryan



More information about the Libc-alpha mailing list