psusensor: Check for present field before using
Using Present field in cpuPresenceHandler without checking for it's
availability may lead to undefined behavior. Check for "Present" field
presence in received signal message before using it.
Tested: psusensor rejected signals if "Present" field is absent.
Change-Id: I083f2c7cfb8b5208eebf85518f8859eee262cf58
Signed-off-by: Vikash Chandola <vikash.chandola@intel.com>
diff --git a/src/PSUSensorMain.cpp b/src/PSUSensorMain.cpp
index f300430..fb4e0d5 100644
--- a/src/PSUSensorMain.cpp
+++ b/src/PSUSensorMain.cpp
@@ -1209,6 +1209,10 @@
boost::container::flat_map<std::string, std::variant<bool>> values;
message.read(objectName, values);
auto findPresence = values.find("Present");
+ if (findPresence == values.end())
+ {
+ return;
+ }
try
{
cpuPresence[index] = std::get<bool>(findPresence->second);