Skip to content

pingpong protocols: on disconnect, check for unflushed pingpong state#17555

Closed
icing wants to merge 1 commit into
curl:masterfrom
icing:pp-dirty-disconnect-fix
Closed

pingpong protocols: on disconnect, check for unflushed pingpong state#17555
icing wants to merge 1 commit into
curl:masterfrom
icing:pp-dirty-disconnect-fix

Conversation

@icing

@icing icing commented Jun 8, 2025

Copy link
Copy Markdown
Contributor

When a pingpong based protocol tries to perform a connection disconnect, it sends a sort of "logout" command to the server, unless the connection is deemed dead.

But the disconnect might happen before pingpong data has been completely sent, in which case sending the "logout" will not work. Check the pingpong state and do not "logout" when data is pending.

This was detected as a condition in fuzzing that triggered a debug assert in the pingpong sending.

When a pingpong based protocol tries to perform a connection disconnect,
it sends a sort of "logout" command to the server, unless the connection
is deemed dead.

But the disconnect might happen before pingpong data has been completely
sent, in which case sending the "logout" will not work. Check the
pingpong state and do not "logout" when data is pending.

This was detected as a condition in fuzzing that triggered a debug
assert in the pingpong sending.
@bagder bagder closed this in c314759 Jun 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants