This is an automated email from the ASF dual-hosted git repository.

guangmingchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brpc.git

The following commit(s) were added to refs/heads/master by this push:
     new 5c8bd064 Fix double free messages in baidu-std (#2924)
5c8bd064 is described below

commit 5c8bd0643e601523ea5063ba29e526c353151201
Author: Bright Chen <chenguangmin...@foxmail.com>
AuthorDate: Sun Mar 23 14:07:22 2025 +0800

    Fix double free messages in baidu-std (#2924)
---
 src/brpc/policy/baidu_rpc_protocol.cpp |  1 -
 test/brpc_socket_unittest.cpp          | 52 +++++++++++++++++-----------------
 2 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/src/brpc/policy/baidu_rpc_protocol.cpp 
b/src/brpc/policy/baidu_rpc_protocol.cpp
index a0ae5dd8..269f0645 100644
--- a/src/brpc/policy/baidu_rpc_protocol.cpp
+++ b/src/brpc/policy/baidu_rpc_protocol.cpp
@@ -646,7 +646,6 @@ void ProcessRpcRequest(InputMessageBase* msg_base) {
                 cntl->SetFailed(EREQUEST, "Fail to parse request message, "
                                           "CompressType=%s, request_size=%d",
                                 CompressTypeToCStr(req_cmp_type), req_size);
-                server->options().rpc_pb_message_factory->Return(messages);
                 break;
             }
             req_buf.clear();
diff --git a/test/brpc_socket_unittest.cpp b/test/brpc_socket_unittest.cpp
index 4852ab7e..70dd8021 100644
--- a/test/brpc_socket_unittest.cpp
+++ b/test/brpc_socket_unittest.cpp
@@ -1238,10 +1238,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckNoKeepalive(ptr->fd());
     }
 
@@ -1252,10 +1252,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, default_keepalive_idle,
                        default_keepalive_interval, default_keepalive_count);
     }
@@ -1267,10 +1267,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
                        default_keepalive_interval, default_keepalive_count);
     }
@@ -1282,10 +1282,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
                        brpc::FLAGS_socket_keepalive_interval_s, 
default_keepalive_count);
     }
@@ -1297,10 +1297,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
                        brpc::FLAGS_socket_keepalive_interval_s,
                        brpc::FLAGS_socket_keepalive_count);
@@ -1317,10 +1317,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         options.fd = sockfd;
         options.keepalive_options = 
std::make_shared<brpc::SocketKeepaliveOptions>();
         options.keepalive_options->keepalive_idle_s = keepalive_idle;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, keepalive_idle,
                        brpc::FLAGS_socket_keepalive_interval_s,
                        brpc::FLAGS_socket_keepalive_count);
@@ -1333,10 +1333,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         options.fd = sockfd;
         options.keepalive_options = 
std::make_shared<brpc::SocketKeepaliveOptions>();
         options.keepalive_options->keepalive_interval_s = keepalive_interval;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
                        keepalive_interval, brpc::FLAGS_socket_keepalive_count);
     }
@@ -1348,10 +1348,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         options.fd = sockfd;
         options.keepalive_options = 
std::make_shared<brpc::SocketKeepaliveOptions>();
         options.keepalive_options->keepalive_count = keepalive_count;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
                        brpc::FLAGS_socket_keepalive_interval_s, 
keepalive_count);
     }
@@ -1365,10 +1365,10 @@ TEST_F(SocketTest, keepalive_input_message) {
         options.keepalive_options->keepalive_idle_s = keepalive_idle;
         options.keepalive_options->keepalive_interval_s = keepalive_interval;
         options.keepalive_options->keepalive_count = keepalive_count;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckKeepalive(ptr->fd(), true, keepalive_idle,
                        keepalive_interval, keepalive_count);
     }
@@ -1388,10 +1388,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::Socket::Create(options, &id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckTCPUserTimeout(ptr->fd(), 0);
     }
 
@@ -1402,10 +1402,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
         brpc::SocketOptions options;
         options.fd = sockfd;
         options.tcp_user_timeout_ms = tcp_user_timeout_ms;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::Socket::Create(options, &id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckTCPUserTimeout(ptr->fd(), tcp_user_timeout_ms);
     }
 
@@ -1415,10 +1415,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
         ASSERT_GT(sockfd, 0);
         brpc::SocketOptions options;
         options.fd = sockfd;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckTCPUserTimeout(ptr->fd(), brpc::FLAGS_socket_tcp_user_timeout_ms);
     }
     {
@@ -1428,10 +1428,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
         brpc::SocketOptions options;
         options.fd = sockfd;
         options.tcp_user_timeout_ms = tcp_user_timeout_ms;
-        brpc::SocketId id;
+        brpc::SocketId id = brpc::INVALID_SOCKET_ID;
         ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, 
&id));
         brpc::SocketUniquePtr ptr;
-        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
+        ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
         CheckTCPUserTimeout(ptr->fd(), tcp_user_timeout_ms);
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org
For additional commands, e-mail: dev-h...@brpc.apache.org

Reply via email to