From 16d0977a39a587af46ed3e43df47f760c5a2d285 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Wed, 30 Nov 2022 15:46:02 -1000 Subject: [PATCH] SCP: Fix internal argv style parsing routine to avoid reaching beyond array --- scp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scp.c b/scp.c index 6ea7be72..b1c603a5 100644 --- a/scp.c +++ b/scp.c @@ -4493,7 +4493,7 @@ strlcpy (argline, cptr, arg_size); cp = argline + (arg_size / 2); strlcpy (cp, cptr, arg_size / 2); argv[0] = argline; /* argv[0] points to unparsed arguments */ -argv[argc + 1] = NULL; /* make sure the argument list always ends with a NULL */ +argv[argc] = NULL; /* make sure the argument list always ends with a NULL */ while (*cp) { while (sim_isspace (*cp)) /* skip blanks */ cp++; @@ -16870,6 +16870,10 @@ static struct parse_arg_function_test { const char *input; struct arg_test_result result; } parse_arg_function_tests[] = { + {"", + {1, {"", NULL}}}, + {"1", + {2, {"", "1", NULL}}}, {"1 2 3 4", {5, {"", "1", "2", "3", "4", NULL}}}, {"'1 2 3 4'",