From: x2018 Date: Wed, 22 Oct 2025 13:45:07 +0000 (+0800) Subject: vtls: unify the error handling in ssl_cf_connect(). X-Git-Tag: rc-8_17_0-3~54 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6032b8f2a22aa5af3cc99ceaf67311b19b6dddd1;p=thirdparty%2Fcurl.git vtls: unify the error handling in ssl_cf_connect(). Check preference at first, then init peer and do connect. Also fixes CF_DATA_RESTORE. Closes #19196 --- diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 7ee9699dbf..115559b70d 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -1365,6 +1365,15 @@ static CURLcode ssl_cf_connect(struct Curl_cfilter *cf, DEBUGASSERT(connssl); *done = FALSE; + + if(!connssl->prefs_checked) { + if(!ssl_prefs_check(data)) { + result = CURLE_SSL_CONNECT_ERROR; + goto out; + } + connssl->prefs_checked = TRUE; + } + if(!connssl->peer.hostname) { char tls_id[80]; connssl->ssl_impl->version(tls_id, sizeof(tls_id) - 1); @@ -1373,12 +1382,6 @@ static CURLcode ssl_cf_connect(struct Curl_cfilter *cf, goto out; } - if(!connssl->prefs_checked) { - if(!ssl_prefs_check(data)) - return CURLE_SSL_CONNECT_ERROR; - connssl->prefs_checked = TRUE; - } - result = connssl->ssl_impl->do_connect(cf, data, done); if(!result && *done) {