On Tue, 14 Jan 2025 11:21:15 +0800 liuye <li...@kylinos.cn> wrote:

>     If name is NULL, a NULL pointer may be accessed in printf.
> 
> ...
>
> --- a/tools/testing/selftests/memfd/memfd_test.c
> +++ b/tools/testing/selftests/memfd/memfd_test.c
> @@ -171,7 +171,7 @@ static void mfd_fail_new(const char *name, unsigned int 
> flags)
>       r = sys_memfd_create(name, flags);
>       if (r >= 0) {
>               printf("memfd_create(\"%s\", %u) succeeded, but failure 
> expected\n",
> -                    name, flags);
> +                    name ? name : "NULL", flags);
>               close(r);
>               abort();

Well huh.  I though printf() would emit "(null)" in this situation, but
my super-sophisticated test case says "core dumped".

#include <stdio.h>
#include <stdlib.h>

int main()
{
        printf("%s\n", (char *)0);
        exit(0);
}


Reply via email to