Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
None
-
None
-
Fully Compatible
-
ALL
-
Platforms 2018-03-12
-
81
Description
socket_ops::sync_send captures information about errors in a std::error_code, and apparently ASIO doesn't check that value before it adds the return value (number of bytes sent) to its count of bytes sent already. If sync_send returns -1 (because of an error), it will end up adding that to its count and then resend a byte which corrupts the message.