From 7e3a56d356fba59268f6a1d99488ee556f548b6d Mon Sep 17 00:00:00 2001 From: jackun Date: Sat, 21 Aug 2021 18:42:48 +0300 Subject: [PATCH] [dbus] Raise TRAP if wrong primitive type but allow to continue --- src/dbus_helpers.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/dbus_helpers.h b/src/dbus_helpers.h index 9c1b3dc1..063dbb48 100644 --- a/src/dbus_helpers.h +++ b/src/dbus_helpers.h @@ -4,6 +4,7 @@ #include #include +#include #include "loaders/loader_dbus.h" @@ -140,10 +141,9 @@ auto DBusMessageIter_wrap::get_primitive() -> T { SPDLOG_ERROR("Type mismatch: '{}' vs '{}'", ((char)requested_type), (char)type()); #ifndef NDEBUG - exit(-1); -#else - return T(); + raise(SIGTRAP); #endif + return T(); } T ret; @@ -153,7 +153,10 @@ auto DBusMessageIter_wrap::get_primitive() -> T { template <> auto DBusMessageIter_wrap::get_primitive() -> std::string { - return std::string(get_primitive()); + auto s = get_primitive(); + if (!s) + return std::string(); + return std::string(s); } uint64_t DBusMessageIter_wrap::get_unsigned() {