From 294db2e4030976aa9f387f4d6d752f2f61942536 Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 22 Jan 2020 15:01:50 +0200 Subject: [PATCH] Fix undefined behavior of "builtins" command --- sh/builtin.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sh/builtin.c b/sh/builtin.c index eab3f57..3eea570 100644 --- a/sh/builtin.c +++ b/sh/builtin.c @@ -143,11 +143,14 @@ static struct sh_builtin __builtins[] = { DECL_BUILTIN(exit), DECL_BUILTIN(into), DECL_BUILTIN(setid), + {NULL} }; - int builtin_exec(const struct cmd_exec *cmd, int *cmd_res) { for (size_t i = 0; i < sizeof(__builtins) / sizeof(__builtins[0]); ++i) { + if (!__builtins[i].name) { + return -1; + } if (!strcmp(__builtins[i].name, cmd->args[0])) { *cmd_res = __builtins[i].exec(cmd); return 0;