Skip to content

Conversation

@earlephilhower
Copy link
Contributor

Sorry, @me-no-dev, I thought we'd hammered out the issues in the SSO conversion, but there's one more but just found.

As found by @mongozmaki in esp8266/Arduino#6035

With SSO implementation in String, StreamString::write generates wrong
strings under some circumstances. Reason is that String::len() returns
strlen(sso_buf) if SSO=true but with newly written data
(in StreamString::write) the null-termination missing at the time len()
is called.

Furthermore, len() is called twice which is inefficient if SSO=true.

As found by @mongozmaki in esp8266/Arduino#6035 With SSO implementation in String, StreamString::write generates wrong strings under some circumstances. Reason is that String::len() returns strlen(sso_buf) if SSO=true but with newly written data (in StreamString::write) the null-termination missing at the time len() is called. Furthermore, len() is called twice which is inefficient if SSO=true.
@me-no-dev me-no-dev merged commit bd57ff4 into espressif:master May 11, 2019
@earlephilhower earlephilhower deleted the streamstringfix branch May 12, 2019 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants