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]

Reply via email to