diff --git a/ChangeLog b/ChangeLog index 8673c594f4..51378242fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6485,4 +6485,6 @@ compiler option when building for a 32-bit target on a native 64-bit compiler (2014-1-18). * include/ctype.h: Typo in macro name: iscntrol, not iscontrol (2104-1-17) + * libc/unistd/lib_getopt.c: If there are no arguments (argc == 1), then + getopt() make like the optind variable in an undefined state (2014-1-20). diff --git a/libc/unistd/lib_getopt.c b/libc/unistd/lib_getopt.c index 1a91909765..4399e6140b 100644 --- a/libc/unistd/lib_getopt.c +++ b/libc/unistd/lib_getopt.c @@ -264,6 +264,10 @@ int getopt(int argc, FAR char *const argv[], FAR const char *optstring) return noarg_ret; } + /* Restore the initial, uninitialized state */ + g_binitialized = false; + optind = 1; + optopt = '?'; return ERROR; }