From c6c4a5bfb7893e5a89b69b4bf58040fea20313ae Mon Sep 17 00:00:00 2001 From: proddy Date: Mon, 21 Oct 2024 20:44:57 +0200 Subject: [PATCH] use strlcpy for readCommand --- src/system.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/system.cpp b/src/system.cpp index 21bd58322..bdcf1615e 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -2019,14 +2019,11 @@ bool System::uploadFirmwareURL(const char * url) { bool System::readCommand(const char * data) { // extract [offset] [length] from string char * p; - char value[10] = {0}; // null just in case + char value[6]; - // make a copy so we can iterate - char data_args[EMS_MAX_TELEGRAM_LENGTH]; - for (uint8_t i = 0; i < strlen(data); i++) { - data_args[i] = data[i]; - } - data_args[strlen(data)] = '\0'; // make sure its terminated + // make a copy so we can iterate, max 15 chars (XX XXXX XX XX) + char data_args[15]; + strlcpy(data_args, data, sizeof(data_args)); uint8_t device_id = 0; // is in hex uint16_t type_id = 0; // is in hex