Skip to content

Commit 5c8bd06

Browse files
authored
Fix double free messages in baidu-std (#2924)
1 parent 1c53314 commit 5c8bd06

2 files changed

Lines changed: 26 additions & 27 deletions

File tree

src/brpc/policy/baidu_rpc_protocol.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,6 @@ void ProcessRpcRequest(InputMessageBase* msg_base) {
646646
cntl->SetFailed(EREQUEST, "Fail to parse request message, "
647647
"CompressType=%s, request_size=%d",
648648
CompressTypeToCStr(req_cmp_type), req_size);
649-
server->options().rpc_pb_message_factory->Return(messages);
650649
break;
651650
}
652651
req_buf.clear();

test/brpc_socket_unittest.cpp

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,10 +1238,10 @@ TEST_F(SocketTest, keepalive_input_message) {
12381238
ASSERT_GT(sockfd, 0);
12391239
brpc::SocketOptions options;
12401240
options.fd = sockfd;
1241-
brpc::SocketId id;
1241+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
12421242
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
12431243
brpc::SocketUniquePtr ptr;
1244-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1244+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
12451245
CheckNoKeepalive(ptr->fd());
12461246
}
12471247

@@ -1252,10 +1252,10 @@ TEST_F(SocketTest, keepalive_input_message) {
12521252
ASSERT_GT(sockfd, 0);
12531253
brpc::SocketOptions options;
12541254
options.fd = sockfd;
1255-
brpc::SocketId id;
1255+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
12561256
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
12571257
brpc::SocketUniquePtr ptr;
1258-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1258+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
12591259
CheckKeepalive(ptr->fd(), true, default_keepalive_idle,
12601260
default_keepalive_interval, default_keepalive_count);
12611261
}
@@ -1267,10 +1267,10 @@ TEST_F(SocketTest, keepalive_input_message) {
12671267
ASSERT_GT(sockfd, 0);
12681268
brpc::SocketOptions options;
12691269
options.fd = sockfd;
1270-
brpc::SocketId id;
1270+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
12711271
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
12721272
brpc::SocketUniquePtr ptr;
1273-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1273+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
12741274
CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
12751275
default_keepalive_interval, default_keepalive_count);
12761276
}
@@ -1282,10 +1282,10 @@ TEST_F(SocketTest, keepalive_input_message) {
12821282
ASSERT_GT(sockfd, 0);
12831283
brpc::SocketOptions options;
12841284
options.fd = sockfd;
1285-
brpc::SocketId id;
1285+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
12861286
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
12871287
brpc::SocketUniquePtr ptr;
1288-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1288+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
12891289
CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
12901290
brpc::FLAGS_socket_keepalive_interval_s, default_keepalive_count);
12911291
}
@@ -1297,10 +1297,10 @@ TEST_F(SocketTest, keepalive_input_message) {
12971297
ASSERT_GT(sockfd, 0);
12981298
brpc::SocketOptions options;
12991299
options.fd = sockfd;
1300-
brpc::SocketId id;
1300+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
13011301
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
13021302
brpc::SocketUniquePtr ptr;
1303-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1303+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
13041304
CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
13051305
brpc::FLAGS_socket_keepalive_interval_s,
13061306
brpc::FLAGS_socket_keepalive_count);
@@ -1317,10 +1317,10 @@ TEST_F(SocketTest, keepalive_input_message) {
13171317
options.fd = sockfd;
13181318
options.keepalive_options = std::make_shared<brpc::SocketKeepaliveOptions>();
13191319
options.keepalive_options->keepalive_idle_s = keepalive_idle;
1320-
brpc::SocketId id;
1320+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
13211321
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
13221322
brpc::SocketUniquePtr ptr;
1323-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1323+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
13241324
CheckKeepalive(ptr->fd(), true, keepalive_idle,
13251325
brpc::FLAGS_socket_keepalive_interval_s,
13261326
brpc::FLAGS_socket_keepalive_count);
@@ -1333,10 +1333,10 @@ TEST_F(SocketTest, keepalive_input_message) {
13331333
options.fd = sockfd;
13341334
options.keepalive_options = std::make_shared<brpc::SocketKeepaliveOptions>();
13351335
options.keepalive_options->keepalive_interval_s = keepalive_interval;
1336-
brpc::SocketId id;
1336+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
13371337
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
13381338
brpc::SocketUniquePtr ptr;
1339-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1339+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
13401340
CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
13411341
keepalive_interval, brpc::FLAGS_socket_keepalive_count);
13421342
}
@@ -1348,10 +1348,10 @@ TEST_F(SocketTest, keepalive_input_message) {
13481348
options.fd = sockfd;
13491349
options.keepalive_options = std::make_shared<brpc::SocketKeepaliveOptions>();
13501350
options.keepalive_options->keepalive_count = keepalive_count;
1351-
brpc::SocketId id;
1351+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
13521352
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
13531353
brpc::SocketUniquePtr ptr;
1354-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1354+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
13551355
CheckKeepalive(ptr->fd(), true, brpc::FLAGS_socket_keepalive_idle_s,
13561356
brpc::FLAGS_socket_keepalive_interval_s, keepalive_count);
13571357
}
@@ -1365,10 +1365,10 @@ TEST_F(SocketTest, keepalive_input_message) {
13651365
options.keepalive_options->keepalive_idle_s = keepalive_idle;
13661366
options.keepalive_options->keepalive_interval_s = keepalive_interval;
13671367
options.keepalive_options->keepalive_count = keepalive_count;
1368-
brpc::SocketId id;
1368+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
13691369
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
13701370
brpc::SocketUniquePtr ptr;
1371-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1371+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
13721372
CheckKeepalive(ptr->fd(), true, keepalive_idle,
13731373
keepalive_interval, keepalive_count);
13741374
}
@@ -1388,10 +1388,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
13881388
ASSERT_GT(sockfd, 0);
13891389
brpc::SocketOptions options;
13901390
options.fd = sockfd;
1391-
brpc::SocketId id;
1391+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
13921392
ASSERT_EQ(0, brpc::Socket::Create(options, &id));
13931393
brpc::SocketUniquePtr ptr;
1394-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1394+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
13951395
CheckTCPUserTimeout(ptr->fd(), 0);
13961396
}
13971397

@@ -1402,10 +1402,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
14021402
brpc::SocketOptions options;
14031403
options.fd = sockfd;
14041404
options.tcp_user_timeout_ms = tcp_user_timeout_ms;
1405-
brpc::SocketId id;
1405+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
14061406
ASSERT_EQ(0, brpc::Socket::Create(options, &id));
14071407
brpc::SocketUniquePtr ptr;
1408-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1408+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
14091409
CheckTCPUserTimeout(ptr->fd(), tcp_user_timeout_ms);
14101410
}
14111411

@@ -1415,10 +1415,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
14151415
ASSERT_GT(sockfd, 0);
14161416
brpc::SocketOptions options;
14171417
options.fd = sockfd;
1418-
brpc::SocketId id;
1418+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
14191419
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
14201420
brpc::SocketUniquePtr ptr;
1421-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1421+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
14221422
CheckTCPUserTimeout(ptr->fd(), brpc::FLAGS_socket_tcp_user_timeout_ms);
14231423
}
14241424
{
@@ -1428,10 +1428,10 @@ TEST_F(SocketTest, tcp_user_timeout) {
14281428
brpc::SocketOptions options;
14291429
options.fd = sockfd;
14301430
options.tcp_user_timeout_ms = tcp_user_timeout_ms;
1431-
brpc::SocketId id;
1431+
brpc::SocketId id = brpc::INVALID_SOCKET_ID;
14321432
ASSERT_EQ(0, brpc::get_or_new_client_side_messenger()->Create(options, &id));
14331433
brpc::SocketUniquePtr ptr;
1434-
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr));
1434+
ASSERT_EQ(0, brpc::Socket::Address(id, &ptr)) << "id=" << id;
14351435
CheckTCPUserTimeout(ptr->fd(), tcp_user_timeout_ms);
14361436
}
14371437
}

0 commit comments

Comments
 (0)