settings: shell: Fix possible buffer overflow

Checks the size of the given string before copying it to internal
buffer.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
This commit is contained in:
Flavio Ceolin 2023-12-12 10:20:45 -08:00 committed by Carles Cufí
parent e70a1a0c48
commit 8977784afe

View File

@ -182,6 +182,11 @@ static int cmd_write(const struct shell *shell_ptr, size_t argc, char *argv[])
break;
case SETTINGS_VALUE_STRING:
buffer_len = strlen(argv[argc - 1]) + 1;
if (buffer_len > sizeof(buffer)) {
shell_error(shell_ptr, "%s is bigger than shell's buffer", argv[argc - 1]);
return -EINVAL;
}
memcpy(buffer, argv[argc - 1], buffer_len);
break;
}