summaryrefslogtreecommitdiffstats
path: root/src/set.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/set.c')
-rw-r--r--src/set.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/set.c b/src/set.c
index 2385031..61e0632 100644
--- a/src/set.c
+++ b/src/set.c
@@ -1020,7 +1020,10 @@ struct nft_set_list_iter *nft_set_list_iter_create(struct nft_set_list *l)
return NULL;
iter->list = l;
- iter->cur = list_entry(l->list.next, struct nft_set, head);
+ if (nft_set_list_is_empty(l))
+ iter->cur = NULL;
+ else
+ iter->cur = list_entry(l->list.next, struct nft_set, head);
return iter;
}
@@ -1036,6 +1039,9 @@ struct nft_set *nft_set_list_iter_next(struct nft_set_list_iter *iter)
{
struct nft_set *s = iter->cur;
+ if (s == NULL)
+ return NULL;
+
/* get next rule, if any */
iter->cur = list_entry(iter->cur->head.next, struct nft_set, head);
if (&iter->cur->head == iter->list->list.next)