[PATCH] Don't pass NULL pointer to error [BZ #24556]

H.J. Lu hjl.tools@gmail.com
Thu May 23 14:58:00 GMT 2019


On Thu, May 23, 2019 at 12:02 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * H. J. Lu:
>
> > In function ‘error’,
> >     inlined from ‘do_one_test’ at bench-strstr.c:149:7,
> >     inlined from ‘do_test’ at bench-strstr.c:201:5,
> >     inlined from ‘test_main’ at bench-strstr.c:220:2:
> > ../include/bits/../../misc/bits/error.h:42:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
> >    42 |     __error_alias (__status, __errnum, __format, __va_arg_pack ());
> >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Isn't this warning wrong for glibc in general (but not for
> _dl_debug_printf)?
>
> I think printing "(null)" for null pointers is a widely-used GNU
> extension.

Only for limited cases:

[hjl@gnu-cfl-1 tmp]$ cat x.c
#include <stdio.h>

char *p;

int
main ()
{
  printf("null string:%s\n", p);
  printf ("%s\n", p);
  return 0;
}
[hjl@gnu-cfl-1 tmp]$ gcc x.c
[hjl@gnu-cfl-1 tmp]$ ./a.out
null string:(null)
Segmentation fault
[hjl@gnu-cfl-1 tmp]$

> Martin, I assume this warning is yours.  Has this matter come up during
> its implementation?
>
> Thanks,
> Florian



-- 
H.J.



More information about the Libc-alpha mailing list