aboutsummaryrefslogtreecommitdiff
path: root/hook.c
diff options
context:
space:
mode:
authorAdrian Ratiu <adrian.ratiu@collabora.com>2026-03-25 21:54:56 +0200
committerJunio C Hamano <gitster@pobox.com>2026-03-25 14:00:46 -0700
commit4d10f4a9527e664e001b9747b1daff6681b3f807 (patch)
tree912bc644e7124d896eaae7bcd8c101dfbac1822f /hook.c
parent8f7db6f8b585a3eef4ba595efd2d098f9abf3606 (diff)
downloadgit-4d10f4a9527e664e001b9747b1daff6681b3f807.tar.xz
hook: detect & emit two more bugs
Trigger a bug when an unknown hook type is encountered while setting up hook execution. Also issue a bug if a configured hook is enabled without a cmd. Mostly useful for defensive coding. Suggested-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'hook.c')
-rw-r--r--hook.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hook.c b/hook.c
index 4a0db5cfeb..b0226ed716 100644
--- a/hook.c
+++ b/hook.c
@@ -409,7 +409,11 @@ static int pick_next_hook(struct child_process *cp,
} else if (h->kind == HOOK_CONFIGURED) {
/* to enable oneliners, let config-specified hooks run in shell. */
cp->use_shell = true;
+ if (!h->u.configured.command)
+ BUG("non-disabled HOOK_CONFIGURED hook has no command");
strvec_push(&cp->args, h->u.configured.command);
+ } else {
+ BUG("unknown hook kind");
}
if (!cp->args.nr)