From 7ac9b012d6a5a6d97ac2aa04dc8dfc7ab53bb8e5 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 18 Oct 2018 12:53:35 +0200 Subject: [PATCH] fix a crash if we get an update for a rule we don't know --- libnymea-app-core/rulemanager.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/libnymea-app-core/rulemanager.cpp b/libnymea-app-core/rulemanager.cpp index d272dc6c..832bb95e 100644 --- a/libnymea-app-core/rulemanager.cpp +++ b/libnymea-app-core/rulemanager.cpp @@ -99,14 +99,8 @@ void RuleManager::handleRulesNotification(const QVariantMap ¶ms) } else if (params.value("notification").toString() == "Rules.RuleConfigurationChanged") { QVariantMap ruleMap = params.value("params").toMap().value("rule").toMap(); QUuid ruleId = ruleMap.value("id").toUuid(); - int idx = -1; - for (int i = 0; i < m_rules->rowCount(); i++) { - if (m_rules->get(i)->id() == ruleId) { - idx = i; - break; - } - } - if (idx == -1) { + Rule *rule = m_rules->getRule(ruleId); + if (!rule) { qWarning() << "Got a rule update notification for a rule we don't know" << ruleId; return; } @@ -114,7 +108,7 @@ void RuleManager::handleRulesNotification(const QVariantMap ¶ms) m_rules->insert(parseRule(ruleMap)); } else if (params.value("notification").toString() == "Rules.RuleActiveChanged") { Rule *rule = m_rules->getRule(params.value("params").toMap().value("ruleId").toUuid()); - if (rule) { + if (!rule) { qWarning() << "Got a rule active notification for a rule we don't know"; return; }