diff options
| author | Tim Allen <screwtape@froup.com> | 2016-05-21 17:31:37 +1000 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-05-22 00:03:30 +0200 |
| commit | 2931a5e39278ce8819c9cc17da66561a1ffbfd17 (patch) | |
| tree | 46a4cac49e41f347bd2a8f772af21b49b484eb0f | |
| parent | 0e80beefc335f3559460508afaf61a16d973da94 (diff) | |
| download | vis-2931a5e39278ce8819c9cc17da66561a1ffbfd17.tar.gz vis-2931a5e39278ce8819c9cc17da66561a1ffbfd17.tar.xz | |
vis-menu: do not segfault if an option lacks an argument
| -rw-r--r-- | vis-menu.c | 20 |
1 files changed, 16 insertions, 4 deletions
@@ -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); |
