From b698c6e203f6fc3489388ef483639fa6881fa4fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=8F=AF?= Date: Thu, 4 Sep 2025 13:19:33 +0000 Subject: [PATCH 1/3] add null check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 周可 --- frameworks/js/napi/tls/src/tls_socket.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frameworks/js/napi/tls/src/tls_socket.cpp b/frameworks/js/napi/tls/src/tls_socket.cpp index 36cac7107..3e82f97d8 100644 --- a/frameworks/js/napi/tls/src/tls_socket.cpp +++ b/frameworks/js/napi/tls/src/tls_socket.cpp @@ -1489,6 +1489,10 @@ bool TLSSocket::TLSSocketInternal::SetSharedSigals() std::string sig_with_md; { std::lock_guard lock(mutexForSsl_); + if (!ssl_) + { + return false; + } SSL_get_shared_sigalgs(ssl_, i, &sign_nid, &hash_nid, nullptr, nullptr, nullptr); } switch (sign_nid) { -- Gitee From 244ba440dd76d5bb41a9bd0ffef342e22ca5860f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=8F=AF?= Date: Fri, 5 Sep 2025 01:05:13 +0000 Subject: [PATCH 2/3] update frameworks/js/napi/tls/src/tls_socket.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 周可 --- frameworks/js/napi/tls/src/tls_socket.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frameworks/js/napi/tls/src/tls_socket.cpp b/frameworks/js/napi/tls/src/tls_socket.cpp index 3e82f97d8..3c250fe09 100644 --- a/frameworks/js/napi/tls/src/tls_socket.cpp +++ b/frameworks/js/napi/tls/src/tls_socket.cpp @@ -1489,8 +1489,7 @@ bool TLSSocket::TLSSocketInternal::SetSharedSigals() std::string sig_with_md; { std::lock_guard lock(mutexForSsl_); - if (!ssl_) - { + if (!ssl_) { return false; } SSL_get_shared_sigalgs(ssl_, i, &sign_nid, &hash_nid, nullptr, nullptr, nullptr); -- Gitee From c585a103146bbd20bfc4838942d6bb3b82e25722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=8F=AF?= Date: Fri, 5 Sep 2025 08:31:54 +0000 Subject: [PATCH 3/3] update frameworks/js/napi/tls/src/tls_socket.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 周可 --- frameworks/js/napi/tls/src/tls_socket.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/frameworks/js/napi/tls/src/tls_socket.cpp b/frameworks/js/napi/tls/src/tls_socket.cpp index 3c250fe09..48fcbc5e9 100644 --- a/frameworks/js/napi/tls/src/tls_socket.cpp +++ b/frameworks/js/napi/tls/src/tls_socket.cpp @@ -1469,20 +1469,27 @@ std::string TLSSocket::TLSSocketInternal::GetProtocol() const return PROTOCOL_TLS_V12; } -bool TLSSocket::TLSSocketInternal::SetSharedSigals() +static bool IsNumberNotZero(int &number, std::mutex &mutexForSsl, ssl_st *ssl) { - int number = 0; { - std::lock_guard lock(mutexForSsl_); - if (!ssl_) { + std::lock_guard lock(mutexForSsl); + if (!ssl) { return false; } - number = SSL_get_shared_sigalgs(ssl_, 0, nullptr, nullptr, nullptr, nullptr, nullptr); + number = SSL_get_shared_sigalgs(ssl, 0, nullptr, nullptr, nullptr, nullptr, nullptr); } if (!number) { return false; } - std::unique_lock lock(rw_mutex_); + return true; +} + +bool TLSSocket::TLSSocketInternal::SetSharedSigals() +{ + int number = 0; + if (!IsNumberNotZero(number, mutexForSsl_, ssl_)) { + return false; + } for (int i = 0; i < number; i++) { int hash_nid; int sign_nid; @@ -1519,6 +1526,7 @@ bool TLSSocket::TLSSocketInternal::SetSharedSigals() } const char *sn_hash = OBJ_nid2sn(hash_nid); sig_with_md += (sn_hash != nullptr) ? std::string(sn_hash) : SIGN_NID_UNDEF; + std::unique_lock lock(rw_mutex_); signatureAlgorithms_.push_back(sig_with_md); } return true; -- Gitee