From c8e0411a224f983df7a52068481ba26d0c84156f Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Sun, 8 Mar 2015 22:56:09 +0100 Subject: [PATCH] store: When advancing an iterator don't loop endlessly on filtered objects. --- src/core/store_expr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/store_expr.c b/src/core/store_expr.c index ddaeccd..d9f6e04 100644 --- a/src/core/store_expr.c +++ b/src/core/store_expr.c @@ -417,10 +417,13 @@ sdb_store_expr_iter_get_next(sdb_store_expr_iter_t *iter) } /* Skip over any filtered objects */ - if (iter->filter) - while ((child = STORE_OBJ(sdb_avltree_iter_peek_next(iter->tree)))) + if (iter->filter) { + while ((child = STORE_OBJ(sdb_avltree_iter_peek_next(iter->tree)))) { if (sdb_store_matcher_matches(iter->filter, child, NULL)) break; + (void)sdb_avltree_iter_get_next(iter->tree); + } + } return ret; } -- 2.30.2