mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
console: Free alloc'd memory after error conditions
Closes https://github.com/espressif/esp-idf/issues/1901
This commit is contained in:
@@ -91,9 +91,11 @@ esp_err_t esp_console_cmd_register(const esp_console_cmd_t *cmd)
|
|||||||
return ESP_ERR_NO_MEM;
|
return ESP_ERR_NO_MEM;
|
||||||
}
|
}
|
||||||
if (cmd->command == NULL) {
|
if (cmd->command == NULL) {
|
||||||
|
free(item);
|
||||||
return ESP_ERR_INVALID_ARG;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
if (strchr(cmd->command, ' ') != NULL) {
|
if (strchr(cmd->command, ' ') != NULL) {
|
||||||
|
free(item);
|
||||||
return ESP_ERR_INVALID_ARG;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
item->command = cmd->command;
|
item->command = cmd->command;
|
||||||
@@ -186,10 +188,12 @@ esp_err_t esp_console_run(const char* cmdline, int* cmd_ret)
|
|||||||
size_t argc = esp_console_split_argv(s_tmp_line_buf, argv,
|
size_t argc = esp_console_split_argv(s_tmp_line_buf, argv,
|
||||||
s_config.max_cmdline_args);
|
s_config.max_cmdline_args);
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
|
free(argv);
|
||||||
return ESP_ERR_INVALID_ARG;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
const cmd_item_t* cmd = find_command_by_name(argv[0]);
|
const cmd_item_t* cmd = find_command_by_name(argv[0]);
|
||||||
if (cmd == NULL) {
|
if (cmd == NULL) {
|
||||||
|
free(argv);
|
||||||
return ESP_ERR_NOT_FOUND;
|
return ESP_ERR_NOT_FOUND;
|
||||||
}
|
}
|
||||||
*cmd_ret = (*cmd->func)(argc, argv);
|
*cmd_ret = (*cmd->func)(argc, argv);
|
||||||
|
Reference in New Issue
Block a user