memcpy copies invalid memory that has not yet been initialized.
So this fix is the correct size when using memcpy.
---
src/log/logd/lgs_dest.cc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/log/logd/lgs_dest.cc b/src/log/logd/lgs_dest.cc
index 943de15ea..74822c25b 100644
--- a/src/log/logd/lgs_dest.cc
+++ b/src/log/logd/lgs_dest.cc
@@ -199,14 +199,16 @@ void DestinationHandler::FormCfgDestMsg(const
std::string& dest,
if (tmp.size() > 1) {
strncpy(msg->type, tmp[kType].c_str(), kMaxChar - 1);
}
- if (tmp.size() == kSize) memcpy(msg->value, tmp[kValue].c_str(), kMaxChar);
+ if (tmp.size() == kSize) {
+ memcpy(msg->value, tmp[kValue].c_str(), tmp[kValue].length() + 1);
+ }
}
void DestinationHandler::FormDelDestMsg(const std::string& dest,
DelDestMsg* msg) {
osafassert(msg != nullptr);
const VectorString tmp = logutil::Parser(dest, kDelimeter);
- memcpy(msg->name, tmp[kName].c_str(), kMaxChar);
+ memcpy(msg->name, tmp[kName].c_str(), tmp[kName].length() + 1);
}
bool DestinationHandler::VectorFind(const VectorString& vec,
--
2.38.1
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel