summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaartic Sivaraam <kaartic.sivaraam@gmail.com>2018-04-03 04:31:00 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-04-05 07:01:35 (GMT)
commita236f900d8f60e567fca0106038f4797341d97b2 (patch)
tree665f1021d58a0869d8ce79213cd20dd9a942433b
parent468165c1d8a442994a825f3684528361727cd8c0 (diff)
downloadgit-a236f900d8f60e567fca0106038f4797341d97b2.zip
git-a236f900d8f60e567fca0106038f4797341d97b2.tar.gz
git-a236f900d8f60e567fca0106038f4797341d97b2.tar.bz2
branch --list: print useful info whilst interactive rebasing a detached HEAD
When rebasing interactively (rebase -i), "git branch --list" prints a line indicating the current branch being rebased. This works well when the interactive rebase is initiated when a local branch is checked out. This doesn't play well when the rebase is initiated on a detached HEAD. When "git branch --list" tries to print information related to the interactive rebase in this case it tries to print the name of a branch using an uninitialized variable and thus tries to print a "null pointer string". As a consequence, it does not provide useful information while also inducing undefined behaviour. So, print the point from which the rebase was started when interactive rebasing a detached HEAD. Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--ref-filter.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ref-filter.c b/ref-filter.c
index 45fc562..d9ef7f0 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -1309,10 +1309,14 @@ char *get_head_description(void)
memset(&state, 0, sizeof(state));
wt_status_get_state(&state, 1);
if (state.rebase_in_progress ||
- state.rebase_interactive_in_progress)
- strbuf_addf(&desc, _("(no branch, rebasing %s)"),
- state.branch);
- else if (state.bisect_in_progress)
+ state.rebase_interactive_in_progress) {
+ if (state.branch)
+ strbuf_addf(&desc, _("(no branch, rebasing %s)"),
+ state.branch);
+ else
+ strbuf_addf(&desc, _("(no branch, rebasing detached HEAD %s)"),
+ state.detached_from);
+ } else if (state.bisect_in_progress)
strbuf_addf(&desc, _("(no branch, bisect started on %s)"),
state.branch);
else if (state.detached_from) {