ls-refs.c: initialize 'prefixes' before using it
authorJacob Vosmaer <jacob@gitlab.com>
Wed, 20 Jan 2021 16:04:25 +0000 (11:04 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sat, 23 Jan 2021 02:57:27 +0000 (18:57 -0800)
commit83befd37249726f6a94e55f5aad1113fd18102a0
tree0116d63640173a2f417f1fc064a2f61af4f6cc4c
parent16b1985be553b5fc6273eb9d7277173623e2d7cb
ls-refs.c: initialize 'prefixes' before using it

Correctly initialize the "prefixes" strvec using strvec_init() instead
of simply zeroing it via the earlier memset().

There's no way to trigger a crash, since the first 'ref-prefix' command
will initialize the strvec via the 'ALLOC_GROW' in 'strvec_push_nodup()'
(the alloc and nr variables are already zero'd, so the call to
ALLOC_GROW is valid).

If no "ref-prefix" command was given, then the call to
'ls-refs.c:ref_match()' will abort early after it reads the zero in
'prefixes->nr'. Likewise, strvec_clear() will only call free() on the
array, which is NULL, so we're safe there, too.

But, all of this is dangerous and requires more reasoning than it would
if we simply called 'strvec_init()', so do that.

Signed-off-by: Jacob Vosmaer <jacob@gitlab.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ls-refs.c