diff options
author | Yang Gu <yang.gu@intel.com> | 2010-03-31 17:17:03 +0800 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-03-31 12:16:39 -0500 |
commit | 744c86a78b8edb96d1af73ea9c9111ffd255d296 (patch) | |
tree | 7d2b36bfe41e9d4f4cdc5409d07ec3b3ad994760 /src | |
parent | 3436bcac0532b70e51b6555569f82ca46cff1215 (diff) | |
download | ofono-744c86a78b8edb96d1af73ea9c9111ffd255d296.tar.bz2 |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/stkutil.c | 16 |
1 files changed, 6 insertions, 10 deletions
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) { |