diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-02-07 00:52:40 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-02-07 00:52:40 -0500 |
commit | ba55487612416b71f22520c87dba477405535a08 (patch) | |
tree | 334c5b8561cf983f35f7d66e7c8d625abdfe9c20 /src | |
parent | 06e042b1bde161e763b98fa457738cbff4f7e181 (diff) | |
download | spmc-ba55487612416b71f22520c87dba477405535a08.tar.gz |
Fix segfault when --install had no arguments
Diffstat (limited to 'src')
-rw-r--r-- | src/spm.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -21,6 +21,7 @@ void usage(const char *program_name) { " -r, --root installation prefix (requires --install)\n" " -L, --list list available packages\n" " -S, --search search for a package\n" + " --cmd execute an internal spm command\n" , program_name); } @@ -114,13 +115,14 @@ int main(int argc, char *argv[], char *arge[]) { for (int p = 0; i < argc; p++) { i++; if (startswith(argv[i], "-") == 0 || startswith(argv[i], "--") == 0) { - if (!p) { - fprintf(stderr, "-I|--install requires at least one package (got: '%s')\n", argv[i]); - exit(1); - } i--; break; } + if ((argc - i) == 0) { + fprintf(stderr, "-I|--install requires at least one package\n"); + usage(program_name); + exit(1); + } strlist_append(packages, argv[i]); } } |