From 6227eac607131ed1042af1de83af7f70d0b05375 Mon Sep 17 00:00:00 2001 From: James Peach Date: Mon, 21 Jun 2010 11:09:45 -0700 Subject: smbtorture: Fixx off-by-one command line parsing. If we are not in shell mode we require both the target and test name arguments. Make sure we process these from the correct index. --- source4/torture/smbtorture.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'source4/torture/smbtorture.c') diff --git a/source4/torture/smbtorture.c b/source4/torture/smbtorture.c index f0da3f0e9e..14eeff93ab 100644 --- a/source4/torture/smbtorture.c +++ b/source4/torture/smbtorture.c @@ -639,29 +639,29 @@ int main(int argc,char *argv[]) gensec_init(cmdline_lp_ctx); - // At this point, we should just have a target string, - // followed by a series of test names. Unless we are in - // shell mode, in which case we don't need anythig more. + if (shell) { + /* In shell mode, just ignore any remaining test names. */ + torture_shell(torture); + } else { - if (argc_new > 1) { - // Take the target name or binding. - if (!torture_parse_target(cmdline_lp_ctx, argv_new[1])) { + /* At this point, we should just have a target string, + * followed by a series of test names. Unless we are in + * shell mode, in which case we don't need anythig more. + */ + + if (argc_new < 3) { + printf("You must specify a test to run, or 'ALL'\n"); usage(pc); exit(1); } - argc_new--; - } + /* Take the target name or binding. */ + if (!torture_parse_target(cmdline_lp_ctx, argv_new[1])) { + usage(pc); + exit(1); + } - if (shell) { - // In shell mode, just ignore any remaining test names. - torture_shell(torture); - } else if (argc_new == 1) { - printf("You must specify a test to run, or 'ALL'\n"); - usage(pc); - exit(1); - } else { - for (i=1;i