diff --git a/services/param/trigger/trigger_manager.c b/services/param/trigger/trigger_manager.c index 06600aa46b344d2131a050cbb1403805a66e2820..9efcf1b154e1da1ff027d997661658c4540a6e3c 100644 --- a/services/param/trigger/trigger_manager.c +++ b/services/param/trigger/trigger_manager.c @@ -389,11 +389,12 @@ static int ExecTriggerMatch_(const TriggerWorkSpace *workSpace, PARAM_CHECK(head != NULL, return 0, "Failed to get header %d", type); TriggerNode *trigger = head->nextTrigger(head, NULL); while (trigger != NULL) { + TriggerNode *next = head->nextTrigger(head, trigger); const char *condition = head->getCondition(trigger); if (head->checkCondition(calculator, condition, content, contentSize) == 1) { calculator->triggerCheckDone(trigger, content, contentSize); } - trigger = head->nextTrigger(head, trigger); + trigger = next; } return 0; }