summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYang Gu <yang.gu@intel.com>2010-03-31 17:17:03 +0800
committerDenis Kenzior <denkenz@gmail.com>2010-03-31 12:16:39 -0500
commit744c86a78b8edb96d1af73ea9c9111ffd255d296 (patch)
tree7d2b36bfe41e9d4f4cdc5409d07ec3b3ad994760 /src
parent3436bcac0532b70e51b6555569f82ca46cff1215 (diff)
downloadofono-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.c16
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) {