Skip to content

Commit 8c928be

Browse files
authored
Merge pull request libgit2#4406 from yoney/clar
Fix clar to verify command line arguments before execute
2 parents 1d7c15a + 3275863 commit 8c928be

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

tests/clar.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,18 @@ clar_parse_args(int argc, char **argv)
313313
{
314314
int i;
315315

316+
/* Verify options before execute */
316317
for (i = 1; i < argc; ++i) {
317318
char *argument = argv[i];
318319

319-
if (argument[0] != '-')
320+
if (argument[0] != '-' || argument[1] == '\0'
321+
|| strchr("sixvqQl", argument[1]) == NULL) {
320322
clar_usage(argv[0]);
323+
}
324+
}
325+
326+
for (i = 1; i < argc; ++i) {
327+
char *argument = argv[i];
321328

322329
switch (argument[1]) {
323330
case 's':
@@ -391,7 +398,7 @@ clar_parse_args(int argc, char **argv)
391398
break;
392399

393400
default:
394-
clar_usage(argv[0]);
401+
assert(!"Unexpected commandline argument!");
395402
}
396403
}
397404
}

0 commit comments

Comments
 (0)