]> git.ipfire.org Git - thirdparty/git.git/commit - bisect.c
bisect: always call setup_revisions after init_revisions
authorJeff King <peff@peff.net>
Thu, 16 Jun 2016 23:37:20 +0000 (19:37 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Jun 2016 00:21:48 +0000 (17:21 -0700)
commit43ec55091553658e4cfb1d927ff2a0fb50a8fdba
treecebab399638a45acf49909eadd7efa67691f9825
parent765428699a5381f113d19974720bc91b5bfeaf1d
bisect: always call setup_revisions after init_revisions

init_revisions() initializes the rev_info struct to default
values, and setup_revisions() parses any command-line
arguments and finalizes the struct.

In e22278c (bisect: display first bad commit without forking
a new process, 2009-05-28), a show_diff_tree() was added
that calls the former but not the latter. It doesn't have
any arguments to parse, but it still should do the
finalizing step.

This may have caused other minor bugs over the years, but it
became much more prominent after fe37a9c (pretty: allow
tweaking tabwidth in --expand-tabs, 2016-03-29). That leaves
the expected tab width as "-1", rather than the true default
of "8". When we see a commit with tabs to be expanded, we
end up trying to add (size_t)-1 spaces to a strbuf, which
complains about the integer overflow.

The fix is easy: just call setup_revisions() with no
arguments.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
bisect.c