Description of problem: $ cat strduptest.c #include <string.h> int main(void) { strdup(NULL); } $ gcc -o strduptest strduptest.c $ ./strduptest Segmentation fault (core dumped) And dmesg shows: strduptest[2374]: segfault at 0 ip 0000003b97086711 sp 00007fff67a8cd98 error 4 in libc-2.17.so[3b97000000+1b6000] Version-Release number of selected component (if applicable): glibc-2.17-18.fc19 How reproducible: always Steps to Reproduce: 1. see description 2. 3. Actual results: segfault Expected results: strdup(3) should deal with NULL correctly Additional info:
Why do you think it is wrong? NULL is not a pointer to a valid string, so it is your bug to call it with that. See http://pubs.opengroup.org/onlinepubs/9699919799/functions/strdup.html