diff --git a/receiver/src/request.cpp b/receiver/src/request.cpp index ee74b4c7b70bfa584e888a13402f6395ded7fc16..cf14205950e5da00811eb0ba37056d4f0c314ce9 100644 --- a/receiver/src/request.cpp +++ b/receiver/src/request.cpp @@ -42,7 +42,7 @@ Error Request::ReceiveMetaData() { if (err) { return err; } - metadata_.assign((char*)buf.get()); + metadata_.assign((char*)buf.get(),request_header_.meta_size); return nullptr; } diff --git a/receiver/unittests/test_request.cpp b/receiver/unittests/test_request.cpp index 23e3eec4c9576e8ed4bf378241c837b69ab39882..fc400799c98c1e684a3859997f948882f3a5dfb0 100644 --- a/receiver/unittests/test_request.cpp +++ b/receiver/unittests/test_request.cpp @@ -104,8 +104,8 @@ class RequestTests : public Test { }; ACTION_P(CopyStr,value) { - if (value.size()<=arg2) { - strcpy(static_cast<char*>(arg1), value.c_str()); + if (value.size()<=arg2 && value.size()>0) { + memcpy(static_cast<char*>(arg1), value.c_str(),value.size()); } }