When a blocking connect() returns with an error, it may already start a timer. So in case the internal threads tries to rto the SYN a segmentation fault occurs.
What
Timer should not be started for failed blocking connect()
Reproductive gtests added.
Why ?
Fixing segmentation fault.
How ?
Start timer only for non-blocking socket connect() or successful connect() of a blocking socket.
Change type
What kind of change does this PR introduce?
[X] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Tests
[ ] Other
Check list
[ ] Code follows the style de facto guidelines of this project
[ ] Comments have been inserted in hard to understand places
Signed-off-by: Alexander Grissik agrissik@nvidia.com
Description
When a blocking connect() returns with an error, it may already start a timer. So in case the internal threads tries to rto the SYN a segmentation fault occurs.
What
Timer should not be started for failed blocking connect() Reproductive gtests added.
Why ?
Fixing segmentation fault.
How ?
Start timer only for non-blocking socket connect() or successful connect() of a blocking socket.
Change type
What kind of change does this PR introduce?
Check list