From 4f02abda506190ca020f7758a2177aa6c5035c64 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Fri, 15 Mar 2019 12:42:34 -0400 Subject: really don't crash on empty input --- parse.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'parse.c') diff --git a/parse.c b/parse.c index 7763d26..39b3502 100644 --- a/parse.c +++ b/parse.c @@ -17,6 +17,8 @@ * */ +#define _XOPEN_SOURCE 700 + #include "sh.h" #include #include @@ -63,12 +65,17 @@ struct command *sh_parse(const char *cmdline) start++; } - char *end = l + strlen(l) - 1; + char *end = l + strlen(l); while (isspace(*end) && end > start) { *end = '\0'; end--; } + if (end <= start) { + free(l); + return NULL; + } + struct command *cmd = calloc(1, sizeof(*cmd)); if (cmd == NULL) { /* TODO: should probably crash here */ -- cgit v1.2.1