public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option
@ 2021-07-12 15:55 mlichvar at redhat dot com
2021-07-12 16:01 ` [Bug argparse/28081] getopt_long doesn't return error on ambiguous option mlichvar at redhat dot com
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: mlichvar at redhat dot com @ 2021-07-12 15:55 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
Bug ID: 28081
Summary: getopt_long doesn't return error on ambigouos option
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: argparse
Assignee: unassigned at sourceware dot org
Reporter: mlichvar at redhat dot com
Target Milestone: ---
An option which partially matches multiple getopt long options doesn't produce
an error.
Reproducer:
#include <stdio.h>
#include <getopt.h>
int main(void) {
const char *argv[] = {"a", "--f", "b", NULL };
int index, c;
static struct option long_options[] = {
{"foobar", required_argument, 0, 0},
{"foobaz", required_argument, 0, 0},
{0, 0, 0, 0}
};
c = getopt_long(3, (char **)argv, "", long_options, &index);
printf("c=%d index=%d\n", c, index);
}
Actual result:
c=0 index=0
Expected result:
option '--f' is ambiguous; possibilities: '--foobar' '--foobaz'
c=63 index=0
More information:
It seems this doesn't happen when the two options are different in the
required_argument vs no_argument setting.
Observed on Fedora 34 using glibc-2.33-16.fc34.x86_64.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug argparse/28081] getopt_long doesn't return error on ambiguous option
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
@ 2021-07-12 16:01 ` mlichvar at redhat dot com
2021-07-12 16:12 ` schwab@linux-m68k.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: mlichvar at redhat dot com @ 2021-07-12 16:01 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
Miroslav Lichvar <mlichvar at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|getopt_long doesn't return |getopt_long doesn't return
|error on ambigouos option |error on ambiguous option
Version|unspecified |2.33
Severity|normal |minor
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug argparse/28081] getopt_long doesn't return error on ambiguous option
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
2021-07-12 16:01 ` [Bug argparse/28081] getopt_long doesn't return error on ambiguous option mlichvar at redhat dot com
@ 2021-07-12 16:12 ` schwab@linux-m68k.org
2021-07-12 16:15 ` mlichvar at redhat dot com
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: schwab@linux-m68k.org @ 2021-07-12 16:12 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
Andreas Schwab <schwab@linux-m68k.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |NOTABUG
Status|NEW |RESOLVED
--- Comment #1 from Andreas Schwab <schwab@linux-m68k.org> ---
That's not a bug. The two options are exactly equivalent, so there is no
ambiguity.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug argparse/28081] getopt_long doesn't return error on ambiguous option
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
2021-07-12 16:01 ` [Bug argparse/28081] getopt_long doesn't return error on ambiguous option mlichvar at redhat dot com
2021-07-12 16:12 ` schwab@linux-m68k.org
@ 2021-07-12 16:15 ` mlichvar at redhat dot com
2021-07-12 17:56 ` schwab@linux-m68k.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: mlichvar at redhat dot com @ 2021-07-12 16:15 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
Miroslav Lichvar <mlichvar at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|NOTABUG |---
--- Comment #2 from Miroslav Lichvar <mlichvar at redhat dot com> ---
They are not equivalent. They have a different index, which is how the
application where I came across this issue recognizes them.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug argparse/28081] getopt_long doesn't return error on ambiguous option
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
` (2 preceding siblings ...)
2021-07-12 16:15 ` mlichvar at redhat dot com
@ 2021-07-12 17:56 ` schwab@linux-m68k.org
2021-07-13 7:34 ` mlichvar at redhat dot com
2021-07-19 7:48 ` mlichvar at redhat dot com
5 siblings, 0 replies; 7+ messages in thread
From: schwab@linux-m68k.org @ 2021-07-12 17:56 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
Andreas Schwab <schwab@linux-m68k.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |NOTABUG
Status|REOPENED |RESOLVED
--- Comment #3 from Andreas Schwab <schwab@linux-m68k.org> ---
You need to use a different val.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug argparse/28081] getopt_long doesn't return error on ambiguous option
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
` (3 preceding siblings ...)
2021-07-12 17:56 ` schwab@linux-m68k.org
@ 2021-07-13 7:34 ` mlichvar at redhat dot com
2021-07-19 7:48 ` mlichvar at redhat dot com
5 siblings, 0 replies; 7+ messages in thread
From: mlichvar at redhat dot com @ 2021-07-13 7:34 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
--- Comment #4 from Miroslav Lichvar <mlichvar at redhat dot com> ---
Ok, if you don't plan to fix this issue, it would be good to have it described
in the getopt_long() man page, or at least fix the example it contains to not
use the same val for different options, so new projects are less likely to fall
into this trap. I'll see if I can submit a patch for the man pages.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug argparse/28081] getopt_long doesn't return error on ambiguous option
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
` (4 preceding siblings ...)
2021-07-13 7:34 ` mlichvar at redhat dot com
@ 2021-07-19 7:48 ` mlichvar at redhat dot com
5 siblings, 0 replies; 7+ messages in thread
From: mlichvar at redhat dot com @ 2021-07-19 7:48 UTC (permalink / raw)
To: glibc-bugs
https://sourceware.org/bugzilla/show_bug.cgi?id=28081
--- Comment #5 from Miroslav Lichvar <mlichvar at redhat dot com> ---
FWIW, the getopt code checks also for a different flag, not just val and
has_arg. A minimal workaround, at least when the struct config is not
reallocated, is to point the flag to the val itself, e.g.
opts[i].flag = &opts[i].val;
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-07-19 7:48 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-12 15:55 [Bug argparse/28081] New: getopt_long doesn't return error on ambigouos option mlichvar at redhat dot com
2021-07-12 16:01 ` [Bug argparse/28081] getopt_long doesn't return error on ambiguous option mlichvar at redhat dot com
2021-07-12 16:12 ` schwab@linux-m68k.org
2021-07-12 16:15 ` mlichvar at redhat dot com
2021-07-12 17:56 ` schwab@linux-m68k.org
2021-07-13 7:34 ` mlichvar at redhat dot com
2021-07-19 7:48 ` mlichvar at redhat dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).