From 167f52587173ad87aac7780058d59aa96422eed0 Mon Sep 17 00:00:00 2001 From: Andreas Fenkart Date: Wed, 9 Dec 2015 13:13:21 +0100 Subject: tools: env validate: pass values as 0-based array passing argv/argc can produce off-by-one errors Signed-off-by: Andreas Fenkart --- common/env_flags.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'common/env_flags.c') diff --git a/common/env_flags.c b/common/env_flags.c index 9c3aed1..735bba5 100644 --- a/common/env_flags.c +++ b/common/env_flags.c @@ -373,21 +373,21 @@ int env_flags_validate_varaccess(const char *name, int check_mask) /* * Validate the parameters to "env set" directly */ -int env_flags_validate_env_set_params(int argc, char * const argv[]) +int env_flags_validate_env_set_params(char *name, char * const val[], int count) { - if ((argc >= 3) && argv[2] != NULL) { - enum env_flags_vartype type = env_flags_get_type(argv[1]); + if ((count >= 1) && val[0] != NULL) { + enum env_flags_vartype type = env_flags_get_type(name); /* * we don't currently check types that need more than * one argument */ - if (type != env_flags_vartype_string && argc > 3) { - printf("## Error: too many parameters for setting " - "\"%s\"\n", argv[1]); + if (type != env_flags_vartype_string && count > 1) { + printf("## Error: too many parameters for setting \"%s\"\n", + name); return -1; } - return env_flags_validate_type(argv[1], argv[2]); + return env_flags_validate_type(name, val[0]); } /* ok */ return 0; -- cgit v1.1