diff options
| -rw-r--r-- | src/vty/command.c | 60 | 
1 files changed, 30 insertions, 30 deletions
| diff --git a/src/vty/command.c b/src/vty/command.c index b26e9919..17d28fe6 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -2294,27 +2294,27 @@ cmd_execute_command_real(vector vline, struct vty *vty,  	argc = 0;  	for (i = 0; i < vector_active(vline); i++) { -		if (varflag) +		if (argc == CMD_ARGC_MAX) +			return CMD_ERR_EXEED_ARGC_MAX; +		if (varflag) {  			argv[argc++] = vector_slot(vline, i); -		else { -			vector descvec = -			    vector_slot(matched_element->strvec, i); +			continue; +		} -			if (vector_active(descvec) == 1) { -				struct desc *desc = vector_slot(descvec, 0); +		vector descvec = vector_slot(matched_element->strvec, i); -				if (CMD_VARARG(desc->cmd)) -					varflag = 1; +		if (vector_active(descvec) == 1) { +			struct desc *desc = vector_slot(descvec, 0); -				if (varflag || CMD_VARIABLE(desc->cmd) -				    || CMD_OPTION(desc->cmd)) -					argv[argc++] = vector_slot(vline, i); -			} else +			if (CMD_VARARG(desc->cmd)) +				varflag = 1; + +			if (varflag || CMD_VARIABLE(desc->cmd) +			    || CMD_OPTION(desc->cmd))  				argv[argc++] = vector_slot(vline, i); +		} else { +			argv[argc++] = vector_slot(vline, i);  		} - -		if (argc == CMD_ARGC_MAX) -			return CMD_ERR_EXEED_ARGC_MAX;  	}  	/* For vtysh execution. */ @@ -2439,27 +2439,27 @@ cmd_execute_command_strict(vector vline, struct vty *vty,  	argc = 0;  	for (i = 0; i < vector_active(vline); i++) { -		if (varflag) +		if (argc == CMD_ARGC_MAX) +			return CMD_ERR_EXEED_ARGC_MAX; +		if (varflag) {  			argv[argc++] = vector_slot(vline, i); -		else { -			vector descvec = -			    vector_slot(matched_element->strvec, i); +			continue; +		} -			if (vector_active(descvec) == 1) { -				struct desc *desc = vector_slot(descvec, 0); +		vector descvec = vector_slot(matched_element->strvec, i); -				if (CMD_VARARG(desc->cmd)) -					varflag = 1; +		if (vector_active(descvec) == 1) { +			struct desc *desc = vector_slot(descvec, 0); -				if (varflag || CMD_VARIABLE(desc->cmd) -				    || CMD_OPTION(desc->cmd)) -					argv[argc++] = vector_slot(vline, i); -			} else +			if (CMD_VARARG(desc->cmd)) +				varflag = 1; + +			if (varflag || CMD_VARIABLE(desc->cmd) +			    || CMD_OPTION(desc->cmd))  				argv[argc++] = vector_slot(vline, i); +		} else { +			argv[argc++] = vector_slot(vline, i);  		} - -		if (argc == CMD_ARGC_MAX) -			return CMD_ERR_EXEED_ARGC_MAX;  	}  	/* For vtysh execution. */ | 
