From c744612a29084b13f7fb350665980c1e727e842a Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 26 Dec 2023 14:22:47 +0100 Subject: [PATCH] Fix scripter buffer overflow (#20303) --- tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino b/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino index 98a9c352f..6e8f41d3c 100755 --- a/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino @@ -9349,8 +9349,10 @@ bool Script_SubCmd(void) { cp += tlen; if (XdrvMailbox.data_len > 0) { *cp++ = '('; - strncpy(cp, XdrvMailbox.data,XdrvMailbox.data_len); - cp += XdrvMailbox.data_len; + uint32_t max_space = sizeof(cmdbuff) - tlen - 4; // 4 = #()0 + uint32_t max_len = min(XdrvMailbox.data_len, max_space); + strncpy(cp, XdrvMailbox.data, max_len); + cp += max_len; *cp++ = ')'; *cp = 0; }