diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c index 171a86332728..c8311daa4881 100644 --- a/stand/efi/loader/main.c +++ b/stand/efi/loader/main.c @@ -1440,6 +1440,14 @@ command_chain(int argc, char *argv[]) return (CMD_ERROR); } +#ifdef LOADER_VERIEXEC + if (verify_file(fd, name, 0, VE_MUST) < 0) { + sprintf(command_errbuf, "can't verify: %s", name); + close(fd); + return (CMD_ERROR); + } +#endif + if (fstat(fd, &st) < -1) { command_errmsg = "stat failed"; close(fd); diff --git a/stand/i386/loader/chain.c b/stand/i386/loader/chain.c index 43ba2697e938..2a4816773882 100644 --- a/stand/i386/loader/chain.c +++ b/stand/i386/loader/chain.c @@ -75,6 +75,14 @@ command_chain(int argc, char *argv[]) return (CMD_ERROR); } +#ifdef LOADER_VERIEXEC + if (verify_file(fd, argv[1], 0, VE_MUST) < 0) { + sprintf(command_errbuf, "can't verify: %s", argv[1]); + close(fd); + return (CMD_ERROR); + } +#endif + len = strlen(argv[1]); if (argv[1][len-1] != ':') { if (fstat(fd, &st) == -1) {