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>

Adrian Ratiu committed Mar 25, 2026 at 21:54 UTC 4d10f4a9527e664e001b9747b1daff6681b3f807
1 file changed +4
hook.c
+4
@@ -409,7 +409,11 @@ static int pick_next_hook(struct child_process *cp,
409 } else if (h->kind == HOOK_CONFIGURED) {
410 /* to enable oneliners, let config-specified hooks run in shell. */
411 cp->use_shell = true;
412 + if (!h->u.configured.command)
413 + BUG("non-disabled HOOK_CONFIGURED hook has no command");
414 strvec_push(&cp->args, h->u.configured.command);
415 + } else {
416 + BUG("unknown hook kind");
417 }
418
419 if (!cp->args.nr)