Bug#969618: getopt: optarg is NULL outside of loop
* John Scott:
> #define _POSIX_C_SOURCE 200809L
> #include <assert.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <unistd.h>
> int main(int argc, char *argv[]) {
> int opt;
> while((opt = getopt(argc, argv, "a:")) != -1) {}
> assert(optarg != NULL);
> }
>
> If this is invoked as './a.out -afoo', the inner assertion will
> the last assertion will fail with glibc.
POSIX leaves it unspecified if optarg is changed if getopt returns -1.
Only optind must be left unchanged. I do not think this is a glibc
bug (or a musl bug).
Reply to: