agora inbox for [email protected]
help / color / mirror / Atom feedFrom: Japin Li <[email protected]>
Subject: [PATCH v2 2/2] Fix optind handling inconsistency in getopt_long() for missing argument
Date: Wed, 22 Jul 2026 11:59:41 +0800
In the long option error path for a missing required argument, the code
previously checked optstring[0] == ':' and returned BADARG immediately
without incrementing optind and setting place = EMSG. This left optind
and place in an inconsistent state compared to the short option path,
where these updates are performed before the check and return.
---
src/port/getopt_long.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/port/getopt_long.c b/src/port/getopt_long.c
index 20953db9db1..2e869fed58b 100644
--- a/src/port/getopt_long.c
+++ b/src/port/getopt_long.c
@@ -145,8 +145,12 @@ retry:
}
else
{
+ optind++;
if (optstring[0] == ':')
+ {
+ place = EMSG;
return BADARG;
+ }
if (opterr && has_arg == required_argument)
fprintf(stderr,
@@ -154,7 +158,6 @@ retry:
argv[0], place);
place = EMSG;
- optind++;
if (has_arg == required_argument)
return BADCH;
--
2.53.0
--=-=-=--
view thread (85+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [PATCH v2 2/2] Fix optind handling inconsistency in getopt_long() for missing argument
In-Reply-To: <no-message-id-912878@localhost>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox