From 6262826627a00739c501c020c5f017b319651484 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 18 Mar 2026 00:29:33 +0000 Subject: nvmutil: even stronger double-run protection Signed-off-by: Leah Rowe --- util/nvmutil/nvmutil.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index 4e4d75b3..33d20c9f 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -746,18 +746,18 @@ good_checksum(unsigned long partnum) void run_cmd(void) { - unsigned long cmd_num; - struct commands *cmd; + unsigned long i = x->i; + void (*run)(void) = x->cmd[i].run; - cmd_num = x->i; - cmd = &x->cmd[cmd_num]; + check_command_num(i); - check_command_num(cmd_num); + if (run == NULL) + err(EINVAL, "Command %lu: null ptr", i); - if (cmd->run == NULL) - err(EINVAL, "Command %lu: null ptr", cmd_num); + run(); - cmd->run(); + for (i = 0; i < items(x->cmd); i++) + x->cmd[i].run = cmd_helper_err; } void -- cgit v1.2.1