We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 2d34c1b + 2d77eae commit 7aa061cCopy full SHA for 7aa061c
cores/esp8266/WString.cpp
@@ -153,13 +153,12 @@ unsigned char ICACHE_FLASH_ATTR String::reserve(unsigned int size) {
153
154
unsigned char ICACHE_FLASH_ATTR String::changeBuffer(unsigned int maxStrLen) {
155
size_t newSize = (maxStrLen + 16) & (~0xf);
156
- char *newbuffer = (char *) malloc(newSize);
+ char *newbuffer = (char *) realloc(buffer, newSize);
157
if(newbuffer) {
158
- memset(newbuffer, 0, newSize);
159
- if (buffer)
+ size_t oldSize = capacity + 1; // include NULL.
+ if (newSize > oldSize)
160
{
161
- memcpy(newbuffer, buffer, len);
162
- free(buffer);
+ memset(newbuffer + oldSize, 0, newSize - oldSize);
163
}
164
capacity = newSize - 1;
165
buffer = newbuffer;
0 commit comments