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