summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core_manager.cpp13
-rw-r--r--elog_watch.cpp25
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);
OpenPOWER on IntegriCloud