1
0
mirror of https://github.com/NevermindZZT/letter-shell.git synced 2025-01-21 10:02:54 +08:00

修改shellParserParam函数防止指针越界

This commit is contained in:
cctv180 2020-09-19 16:14:37 +08:00
parent 5f26f477a7
commit 8ebb339e99
2 changed files with 5 additions and 11 deletions

View File

@ -872,6 +872,11 @@ static void shellParserParam(Shell *shell)
record = 1;
}
}
//TODO 防止shell->parser.param[]越界 自动截断多余计数
if (shell->parser.paramCount > SHELL_PARAMETER_MAX_NUMBER)
{
shell->parser.paramCount = SHELL_PARAMETER_MAX_NUMBER;
}
}
@ -883,12 +888,6 @@ static void shellParserParam(Shell *shell)
static void shellRemoveParamQuotes(Shell *shell)
{
unsigned short paramLength;
//TODO 防止shell->parser.param[]越界 自动截断多余参数
if (shell->parser.paramCount > SHELL_PARAMETER_MAX_NUMBER)
{
shell->parser.paramCount = SHELL_PARAMETER_MAX_NUMBER;
}
for (unsigned short i = 0; i < shell->parser.paramCount; i++)
{
if (shell->parser.param[i][0] == '\"')

View File

@ -304,11 +304,6 @@ int shellExtRun(Shell *shell, ShellCommand *command, int argc, char *argv[])
unsigned int params[8] = {0};
int paramNum = command->attr.attrs.paramNum > (argc - 1) ?
command->attr.attrs.paramNum : (argc - 1);
//TODO 防止 params[8]越界
if (SHELL_PARAMETER_MAX_NUMBER < argc)
{
return -1;
}
for (int i = 0; i < argc - 1; i++)
{
params[i] = shellExtParsePara(shell, argv[i + 1]);