From 2931a5e39278ce8819c9cc17da66561a1ffbfd17 Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Sat, 21 May 2016 17:31:37 +1000 Subject: vis-menu: do not segfault if an option lacks an argument --- vis-menu.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'vis-menu.c') diff --git a/vis-menu.c b/vis-menu.c index c13bb94..4082f17 100644 --- a/vis-menu.c +++ b/vis-menu.c @@ -594,10 +594,22 @@ main(int argc, char **argv) { else if(!strcmp(argv[i], "-b")) barpos=-1; /* double flags */ - else if(!strcmp(argv[i], "-p")) - prompt=argv[++i]; - else if(!strcmp(argv[i], "-l")) - lines = atoi(argv[++i]); + else if(!strcmp(argv[i], "-p")) { + if(argc > i+1) + prompt=argv[++i]; + else { + fprintf(stderr, "Must provide a prompt\n"); + exit(EXIT_FAILURE); + } + } + else if(!strcmp(argv[i], "-l")) { + if(argc > i+1) + lines = atoi(argv[++i]); + else { + fprintf(stderr, "Must provide a line count\n"); + exit(EXIT_FAILURE); + } + } else { strncpy(text, argv[i], sizeof(text)-1); cursor = strlen(text); -- cgit v1.2.3