Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Secure transport: fix busy loop on EOF read #11427

Closed
wants to merge 1 commit into from

Conversation

Natris
Copy link
Contributor

@Natris Natris commented Jul 12, 2023

if EOF happens, socket is readable, SSLHandshake calls bio_cf_in_read; which interprets nread == 0 as errSSLWouldBlock, which leads to busy loop until timeout occurs or possibly write fails.

I have tried to return success with nread being 0 but SSLHandshake returns errSecParam. Returning errSSLClosedGraceful (old return value from 55807e6#diff-016d06b58b35fe28e30d7967febf3d90524f38baf4f4c5923482a3ebde438ccfL859) leads to SSLHandshake returning errSSLClosedAbort (at least on M2 mac on Ventura); I assume the errSSLClosedNoNotify from the old comment may be returned outside of handshake, but that was not tested.

…to busy loop.

using return code used before the large refactor from 2022
@github-actions github-actions bot added the TLS label Jul 12, 2023
@bagder bagder changed the title Apple platform: busy loop on EOF read Secure transport: fix busy loop on EOF read Jul 13, 2023
@icing icing self-requested a review July 13, 2023 12:33
@bagder bagder closed this in 9630fb9 Jul 13, 2023
@bagder
Copy link
Member

bagder commented Jul 13, 2023

Thanks!

bch pushed a commit to bch/curl that referenced this pull request Jul 19, 2023
Regression since the large refactor from 2022

Closes curl#11427
ptitSeb pushed a commit to wasix-org/curl that referenced this pull request Sep 25, 2023
Regression since the large refactor from 2022

Closes curl#11427
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

3 participants