mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-25 20:02:37 +03:00
The default Print::write(byte, count) method was continuing to send bytes one-by-one even when a prior write returned 0. Because the buffer pointer was incremented no matter success or fail, this leads to data corruption as you'll not send some bytes in the middle and will then send extra bytes past the end of the passed in buffer. Because there's no concept of timeout, just stop on the first time write(byte) fails and return the total bytes successfully written and let the user worry about retrying or handling an error. Found by @d-a-v and discussed on gitter.