You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks to Pietro Colavito for reporting and helping to debug this.
Unlike Issue #89, this is potentially caused by Arduino sketch versions prior to 1.3.9. It also, however, only affects the Windows application, not the Mac version.
The trigger is the same phenomenon that triggered Issue #89: the Windows application (for a still not understood reason) appends a carriage return character to the end of messages sent via USB to the Arduino. In this case, the message that is affected is:
Config: WRITE_EEPROM 0 123456.7890
This message is sent only when the EEPROM is not valid, which is only the case when a new Arduino is used or if the Calibrate->Invalidate EEPROM menu command is used.
The message is exactly 35 characters long (with the newline), but with the extra carriage return, it is 36. From sketch version 1.3.9 forward, this is detected and the following message is sent back to the host which writes it to the log file:
ERROR: Host message too long: Config: WRITE_EEPROM 0 123456.7890....
The application code that recognizes and handles this error message has not yet been released. The v2.5.1 (or earlier) application continues to wait for the expected response from the Arduino code and the application freezes until the USB cable is unplugged.
Sketch versions before 1.3.9 have no message length checking. Since the "incoming_msg" character array has a length of 35, the 36 character message overflows the buffer by one byte. This memory (stack) corruption can be benign or can cause the sketch to crash. If the sketch crashes, the application hangs until the USB cable is unplugged.
The text was updated successfully, but these errors were encountered:
Thanks to Pietro Colavito for reporting and helping to debug this.
Unlike Issue #89, this is potentially caused by Arduino sketch versions prior to 1.3.9. It also, however, only affects the Windows application, not the Mac version.
The trigger is the same phenomenon that triggered Issue #89: the Windows application (for a still not understood reason) appends a carriage return character to the end of messages sent via USB to the Arduino. In this case, the message that is affected is:
Config: WRITE_EEPROM 0 123456.7890
This message is sent only when the EEPROM is not valid, which is only the case when a new Arduino is used or if the Calibrate->Invalidate EEPROM menu command is used.
The message is exactly 35 characters long (with the newline), but with the extra carriage return, it is 36. From sketch version 1.3.9 forward, this is detected and the following message is sent back to the host which writes it to the log file:
ERROR: Host message too long: Config: WRITE_EEPROM 0 123456.7890....
The application code that recognizes and handles this error message has not yet been released. The v2.5.1 (or earlier) application continues to wait for the expected response from the Arduino code and the application freezes until the USB cable is unplugged.
Sketch versions before 1.3.9 have no message length checking. Since the "incoming_msg" character array has a length of 35, the 36 character message overflows the buffer by one byte. This memory (stack) corruption can be benign or can cause the sketch to crash. If the sketch crashes, the application hangs until the USB cable is unplugged.
The text was updated successfully, but these errors were encountered: