mirror of
https://github.com/NevermindZZT/letter-shell.git
synced 2025-01-21 10:02:54 +08:00
修改shellParserParam函数防止指针越界
This commit is contained in:
parent
5f26f477a7
commit
8ebb339e99
11
src/shell.c
11
src/shell.c
@ -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] == '\"')
|
||||
|
@ -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]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user