From a54eb317c73422f72487fac33ac7813f7b518e7e Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 15 Jun 2022 18:57:12 -0400 Subject: Fix segfault on empty --env/-E and --sep arguments --- src/main.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/main.c b/src/main.c index 98c3529..6d309c8 100644 --- a/src/main.c +++ b/src/main.c @@ -39,6 +39,10 @@ static int is_valid_arg(char **args, char *s) { static char *getenv_ex(char *s) { char *key, *key_end; char *env_var; + if (!s) { + return NULL; + } + key = strdup(s); if (!key) { return NULL; @@ -205,12 +209,17 @@ int main(int argc, char *argv[], char *arge[]) { if (ARGM("--sep") || ARGM("-s")) { i++; sep = argv[i]; + if (!sep) { + fprintf(stderr, "%s requires an argument\n", argv[i - 1]); + exit(1); + } continue; } if (ARGM("--env") || ARGM("-E")) { i++; sys_var = getenv_ex(argv[i]); if (!sys_var) { + fprintf(stderr, "%s requires an argument\n", argv[i - 1]); exit(1); } continue; -- cgit