diff options
-rw-r--r-- | core_manager.cpp | 13 | ||||
-rw-r--r-- | elog_watch.cpp | 25 |
2 files changed, 35 insertions, 3 deletions
diff --git a/core_manager.cpp b/core_manager.cpp index dfa1aeb..3ab726b 100644 --- a/core_manager.cpp +++ b/core_manager.cpp @@ -2,6 +2,7 @@ #include <experimental/filesystem> #include <phosphor-logging/log.hpp> +#include <sdbusplus/exception.hpp> #include "core_manager.hpp" #include "config.h" @@ -72,7 +73,17 @@ void Manager::createHelper(const vector<string>& files) } map<string, vector<string>> mapperResponse; - mapperResponseMsg.read(mapperResponse); + try + { + mapperResponseMsg.read(mapperResponse); + } + catch (const sdbusplus::exception::SdBusError& e) + { + log<level::ERR>("Failed to parse dump create message", + entry("ERROR=%s", e.what()), + entry("REPLY_SIG=%s", mapperResponseMsg.get_signature())); + return; + } if (mapperResponse.empty()) { log<level::ERR>("Error reading mapper response"); diff --git a/elog_watch.cpp b/elog_watch.cpp index 6cb7a0f..e2a3866 100644 --- a/elog_watch.cpp +++ b/elog_watch.cpp @@ -1,5 +1,6 @@ #include <cereal/cereal.hpp> #include <phosphor-logging/elog.hpp> +#include <sdbusplus/exception.hpp> #include "elog_watch.hpp" #include "dump_internal.hpp" @@ -65,7 +66,17 @@ void Watch::addCallback(sdbusplus::message::message& msg) sdbusplus::xyz::openbmc_project::Dump::Create::Error::QuotaExceeded; LogEntryMsg logEntry; - msg.read(logEntry); + try + { + msg.read(logEntry); + } + catch (const sdbusplus::exception::SdBusError& e) + { + log<level::ERR>("Failed to parse elog add signal", + entry("ERROR=%s", e.what()), + entry("REPLY_SIG=%s", msg.get_signature())); + return; + } std::string objectPath(std::move(logEntry.first)); @@ -135,7 +146,17 @@ void Watch::addCallback(sdbusplus::message::message& msg) void Watch::delCallback(sdbusplus::message::message& msg) { sdbusplus::message::object_path logEntry; - msg.read(logEntry); + try + { + msg.read(logEntry); + } + catch (const sdbusplus::exception::SdBusError& e) + { + log<level::ERR>("Failed to parse elog del signal", + entry("ERROR=%s", e.what()), + entry("REPLY_SIG=%s", msg.get_signature())); + return; + } //Get elog entry message string. std::string objectPath(logEntry); |