Package: libc6-dev Version: 2.24-9 Severity: normal Dear Maintainer,
See this code: #include <stdio.h> #define _GNU_SOURCE #include <string.h> int main() { const char * filename = "cia<o.txt "; const char *ptr = filename + strlen(filename); char *pos = strchrnul(filename, (int)'<'); if (pos < ptr) ptr = pos; printf("%d\n", ptr == filename + strlen(filename)); } It doesn't work because the _GNU_SOURCE define happens after an include. The man page for strchrnul only specifies to define it before the string.h include, but probably it would be best to mention that it needs to be before any include, otherwise it's just undefined behaviour. -- System Information: Debian Release: 9.0 APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages libc6-dev depends on: ii libc-dev-bin 2.24-9 ii libc6 2.24-9 ii linux-libc-dev 4.9.16-1 libc6-dev recommends no packages. Versions of packages libc6-dev suggests: pn glibc-doc <none> ii manpages-dev 4.09-2 -- no debconf information