From 744c86a78b8edb96d1af73ea9c9111ffd255d296 Mon Sep 17 00:00:00 2001 From: Yang Gu Date: Wed, 31 Mar 2010 17:17:03 +0800 Subject: Fix: Increate iterator when parsing fails If the comprehension TLV tag matches the expected handler, and the handler fails to parse the tag, then increase the iterator. --- src/stkutil.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'src/stkutil.c') diff --git a/src/stkutil.c b/src/stkutil.c index b8302916..937ef1a0 100644 --- a/src/stkutil.c +++ b/src/stkutil.c @@ -910,7 +910,6 @@ static gboolean parse_dataobj(struct comprehension_tlv_iter *iter, entries = g_slist_reverse(entries); for (l = entries; l; l = l->next) { - gboolean ret; dataobj_handler handler; struct dataobj_handler_entry *entry = l->data; @@ -918,15 +917,12 @@ static gboolean parse_dataobj(struct comprehension_tlv_iter *iter, if (handler == NULL) continue; - if (comprehension_tlv_iter_get_tag(iter) == entry->type) - ret = handler(iter, entry->data); - else - ret = FALSE; - - entry->parsed = ret; - - if (ret && comprehension_tlv_iter_next(iter) == FALSE) - break; + if (comprehension_tlv_iter_get_tag(iter) == entry->type) { + if (handler(iter, entry->data)) + entry->parsed = TRUE; + if (comprehension_tlv_iter_next(iter) == FALSE) + break; + } } for (l = entries; l; l = l->next) { -- cgit v1.2.3