This is an automated email from the ASF dual-hosted git repository.
wangdan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git
The following commit(s) were added to refs/heads/master by this push:
new 6d720b93a fix(message_ex): fix the crash caused by message_ex::copy()
in server internally (#1938)
6d720b93a is described below
commit 6d720b93aa0b10299b972c37b39722ce1254cf26
Author: Sunflower876 <[email protected]>
AuthorDate: Thu Apr 11 10:54:27 2024 +0800
fix(message_ex): fix the crash caused by message_ex::copy() in server
internally (#1938)
https://github.com/apache/incubator-pegasus/issues/1937
---
src/runtime/rpc/rpc_message.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/runtime/rpc/rpc_message.cpp b/src/runtime/rpc/rpc_message.cpp
index 18caf362b..00412db72 100644
--- a/src/runtime/rpc/rpc_message.cpp
+++ b/src/runtime/rpc/rpc_message.cpp
@@ -250,7 +250,6 @@ message_ex *message_ex::copy(bool clone_content, bool
copy_for_receive)
int total_length = body_size() + sizeof(dsn::message_header);
std::shared_ptr<char>
recv_buffer(dsn::utils::make_shared_array<char>(total_length));
char *ptr = recv_buffer.get();
- int i = 0;
if ((const char *)header != buffers[0].data()) {
memcpy(ptr, (const void *)header, sizeof(message_header));
@@ -259,10 +258,9 @@ message_ex *message_ex::copy(bool clone_content, bool
copy_for_receive)
for (dsn::blob &bb : buffers) {
memcpy(ptr, bb.data(), bb.length());
- i += bb.length();
ptr += bb.length();
}
- CHECK_EQ_MSG(i, total_length, "rpc_name = {}", msg->header->rpc_name);
+ CHECK_EQ_MSG(ptr - recv_buffer.get(), total_length, "rpc_name = {}",
msg->header->rpc_name);
auto data = dsn::blob(recv_buffer, total_length);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]