multi-pack-index: fix potential segfault without sub-command
commit88617d11f9d2ee1ea726cef4527d676a9a46fa63
authorTaylor Blau <me@ttaylorr.com>
Mon, 19 Jul 2021 17:18:49 +0000 (19 13:18 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Jul 2021 22:24:01 +0000 (19 15:24 -0700)
treeaf4a1eb9295906c3127654c51cc7a75b4433f153
parent30077524611cae8f25111e2c8b8d42136aa58787
multi-pack-index: fix potential segfault without sub-command

Since cd57bc41bb (builtin/multi-pack-index.c: display usage on
unrecognized command, 2021-03-30) we have used a "usage" label to avoid
having two separate callers of usage_with_options (one when no arguments
are given, and another for unrecognized sub-commands).

But the first caller has been broken since cd57bc41bb, since it will
happily jump to usage without arguments, and then pass argv[0] to the
"unrecognized subcommand" error.

Many compilers will save us from a segfault here, but the end result is
ugly, since it mentions an unrecognized subcommand when we didn't even
pass one, and (on GCC) includes "(null)" in its output.

Move the "usage" label down past the error about unrecognized
subcommands so that it is only triggered when it should be. While we're
at it, bulk up our test coverage in this area, too.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/multi-pack-index.c
t/t5319-multi-pack-index.sh