From 63ab79e549bbf63b99cd53688ff1d253bb1a2671 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Wed, 18 Jul 2018 18:36:31 -0700 Subject: [PATCH] Fix overlapping memcpy call in String::trim (#4938) memcpy() is undefined when source and destination overlap. String::trim uses it when shifting the string left to remove left padding. Replace with memmove() which is always safe, even when overlapped. --- cores/esp8266/WString.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp8266/WString.cpp b/cores/esp8266/WString.cpp index 4efba3e7d..e21316379 100644 --- a/cores/esp8266/WString.cpp +++ b/cores/esp8266/WString.cpp @@ -753,7 +753,7 @@ void String::trim(void) { end--; len = end + 1 - begin; if(begin > buffer) - memcpy(buffer, begin, len); + memmove(buffer, begin, len); buffer[len] = 0; }