bearssl: avoid strpcy() when generating TLS version log message

Closes #15194
This commit is contained in:
Daniel Stenberg 2024-10-08 13:04:43 +02:00
parent 3dfc256b94
commit 741e07edba
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -761,7 +761,6 @@ static CURLcode bearssl_connect_step2(struct Curl_cfilter *cf,
(struct bearssl_ssl_backend_data *)connssl->backend;
br_ssl_session_parameters session;
char cipher_str[64];
char ver_str[16];
CURLcode ret;
DEBUGASSERT(backend);
@ -772,6 +771,7 @@ static CURLcode bearssl_connect_step2(struct Curl_cfilter *cf,
return CURLE_OK;
if(ret == CURLE_OK) {
unsigned int tver;
int subver = 0;
if(br_ssl_engine_current_state(&backend->ctx.eng) == BR_SSL_CLOSED) {
failf(data, "SSL: connection closed during handshake");
@ -780,19 +780,22 @@ static CURLcode bearssl_connect_step2(struct Curl_cfilter *cf,
connssl->connecting_state = ssl_connect_3;
/* Informational message */
tver = br_ssl_engine_get_version(&backend->ctx.eng);
if(tver == BR_TLS12)
strcpy(ver_str, "TLSv1.2");
else if(tver == BR_TLS11)
strcpy(ver_str, "TLSv1.1");
else if(tver == BR_TLS10)
strcpy(ver_str, "TLSv1.0");
else {
msnprintf(ver_str, sizeof(ver_str), "TLS 0x%04x", tver);
switch(tver) {
case BR_TLS12:
subver = 2; /* 1.2 */
break;
case BR_TLS11:
subver = 1; /* 1.1 */
break;
case BR_TLS10: /* 1.0 */
default: /* unknown, leave it at zero */
break;
}
br_ssl_engine_get_session_parameters(&backend->ctx.eng, &session);
Curl_cipher_suite_get_str(session.cipher_suite, cipher_str,
sizeof(cipher_str), TRUE);
infof(data, "BearSSL: %s connection using %s", ver_str, cipher_str);
infof(data, "BearSSL: TLS v1.%d connection using %s", subver,
cipher_str);
}
return ret;
}