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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]