]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/shortlog: explicitly set hash algo when there is no repo
authorWolfgang Müller <wolf@oriole.systems>
Thu, 17 Oct 2024 09:35:28 +0000 (11:35 +0200)
committerTaylor Blau <me@ttaylorr.com>
Thu, 17 Oct 2024 20:10:54 +0000 (16:10 -0400)
commitb33001645e9a1b042f5bc843b76e0e8a28a91223
treeffd15fbb8d650c4c107418315c7618073152a252
parentef8ce8f3d4344fd3af049c17eeba5cd20d98b69f
builtin/shortlog: explicitly set hash algo when there is no repo

Whilst git-shortlog(1) does not explicitly need any repository
information when run without reference to one, it still parses some of
its arguments with parse_revision_opt() which assumes that the hash
algorithm is set. However, in c8aed5e8da (repository: stop setting SHA1
as the default object hash, 2024-05-07) we stopped setting up a default
hash algorithm and instead require commands to set it up explicitly.

This was done for most other commands like in ab274909d4 (builtin/diff:
explicitly set hash algo when there is no repo, 2024-05-07) but was
missed for builtin/shortlog, making git-shortlog(1) segfault outside of
a repository when given arguments like --author that trigger a call to
parse_revision_opt().

Fix this for now by explicitly setting the hash algorithm to SHA1. Also
add a regression test for the segfault.

Thanks-to: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Wolfgang Müller <wolf@oriole.systems>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
builtin/shortlog.c
t/t4201-shortlog.sh