[PATCH] rebase: verify commit parameter
From: René Scharfe <hidden>
Date: 2020-12-31 23:58:10
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: René Scharfe <hidden>
Date: 2020-12-31 23:58:10
Subsystem:
the rest · Maintainer:
Linus Torvalds
If the user specifies a base commit to switch to, check if it actually references a commit right away to avoid getting confused later on when it turns out to be an invalid object. Reported-by: LeSeulArtichaut <redacted> Signed-off-by: René Scharfe <redacted> --- git-legacy-rebase.sh also accepted non-commits, if I read the code correctly. builtin/rebase.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 19c7b377aa..840dbd7eb7 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c@@ -1917,7 +1917,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) die_if_checked_out(buf.buf, 1); options.head_name = xstrdup(buf.buf); /* If not is it a valid ref (branch or commit)? */ - } else if (!get_oid(branch_name, &options.orig_head)) + } else if (!get_oid(branch_name, &options.orig_head) && + lookup_commit_reference(the_repository, + &options.orig_head)) options.head_name = NULL; else die(_("fatal: no such branch/commit '%s'"), --
2.30.0