[PATCH 1/8] stk: Make parse_dataobj not consume extra data

Yang Gu gyagp0 at gmail.com
Wed May 26 07:39:07 PDT 2010


---
 src/stkutil.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/stkutil.c b/src/stkutil.c
index 016bde9..fd5b7c6 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -2023,6 +2023,7 @@ static gboolean parse_dataobj(struct comprehension_tlv_iter *iter,
 	GSList *l;
 	va_list args;
 	gboolean minimum_set = TRUE;
+	struct comprehension_tlv_iter iter_old;
 
 	va_start(args, type);
 
@@ -2056,11 +2057,14 @@ static gboolean parse_dataobj(struct comprehension_tlv_iter *iter,
 			if (handler(iter, entry->data))
 				entry->parsed = TRUE;
 
+			comprehension_tlv_iter_copy(iter, &iter_old);
+
 			if (comprehension_tlv_iter_next(iter) == FALSE)
 				break;
 		}
 	}
 
+	comprehension_tlv_iter_copy(&iter_old, iter);
 out:
 	for (l = entries; l; l = l->next) {
 		struct dataobj_handler_entry *entry = l->data;
@@ -2293,6 +2297,9 @@ static GSList *parse_item_list(struct comprehension_tlv_iter *iter)
 	struct stk_item item;
 	GSList *list = NULL;
 
+	if (comprehension_tlv_iter_next(iter) != TRUE)
+		return NULL;
+
 	if (comprehension_tlv_iter_get_tag(iter) != tag)
 		return NULL;
 
-- 
1.7.0.4



More information about the ofono mailing list