On Tue, 14 Jan 2025 11:21:15 +0800 liuye liuye@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);
close(r); abort();name ? name : "NULL", flags);
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); }