Skip to content

ngtcp2: let verify failures win over expiry processing errors - #22317

Closed
GrahamCampbell wants to merge 1 commit into
curl:masterfrom
GrahamCampbell:ngtcp2-vrfy-expiry
Closed

ngtcp2: let verify failures win over expiry processing errors#22317
GrahamCampbell wants to merge 1 commit into
curl:masterfrom
GrahamCampbell:ngtcp2-vrfy-expiry

Conversation

@GrahamCampbell

Copy link
Copy Markdown
Contributor

A flaky CI failure of test_17_05_bad_ip_addr[h3] (GnuTLS, event-based) had curl detect the certificate name mismatch yet exit with CURLE_RECV_ERROR (56) instead of CURLE_PEER_FAILED_VERIFICATION (60). Curl_cf_ngtcp2_cmn_connect calls Curl_cf_ngtcp2_cmn_set_expiry after its ctx->tls_vrfy_result override and returns the error unfiltered, so when the server's final handshake flight happens to be processed by the ingress inside set_expiry, the verify failure surfaces as a generic receive error.

This PR makes set_expiry prefer ctx->tls_vrfy_result over generic progress errors, as the recv and send paths already do after calling it, and also covers the cf-ngtcp2-proxy.c call sites that lack the override. Completes #21712. Seen in https://github.com/curl/curl/actions/runs/29243256619/job/86794119412.

@github-actions github-actions Bot added the HTTP/3 h3 or quic related label Jul 14, 2026
@vszakats vszakats closed this in b8c061c Jul 15, 2026
@vszakats

Copy link
Copy Markdown
Member

Thanks, merged now!

@GrahamCampbell
GrahamCampbell deleted the ngtcp2-vrfy-expiry branch July 15, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

HTTP/3 h3 or quic related

Development

Successfully merging this pull request may close these issues.

3 participants