diff options
| author | Oren Shomron <[email protected]> | 2018-08-31 11:14:32 -0400 |
|---|---|---|
| committer | Eric Paris <[email protected]> | 2018-08-31 11:14:32 -0400 |
| commit | 298182f68c66c05229eb03ac171abe6e309ee79a (patch) | |
| tree | 1c1207ca641a501d4e494c637ff50fdb961f4e1c | |
| parent | d929dcbb10863323c436af3cf76cb16a6dfc9b29 (diff) | |
Fix panic when parsing unknown flag followed by empty argument (#173)v1.0.3
Signed-off-by: Oren Shomron <[email protected]>
| -rw-r--r-- | flag.go | 7 | ||||
| -rw-r--r-- | flag_test.go | 5 |
2 files changed, 10 insertions, 2 deletions
@@ -925,13 +925,16 @@ func stripUnknownFlagValue(args []string) []string { } first := args[0] - if first[0] == '-' { + if len(first) > 0 && first[0] == '-' { //--unknown --next-flag ... return args } //--unknown arg ... (args will be arg ...) - return args[1:] + if len(args) > 1 { + return args[1:] + } + return nil } func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) { diff --git a/flag_test.go b/flag_test.go index f600f0a..7d02dbc 100644 --- a/flag_test.go +++ b/flag_test.go @@ -431,6 +431,11 @@ func testParseWithUnknownFlags(f *FlagSet, t *testing.T) { "--unknown8=unknown8value", "--boole", "--unknown6", + "", + "-uuuuu", + "", + "--unknown10", + "--unknown11", } want := []string{ "boola", "true", |
