summaryrefslogtreecommitdiffstats
path: root/src/set_elem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/set_elem.c')
-rw-r--r--src/set_elem.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/set_elem.c b/src/set_elem.c
index 95f12bf..4f52b1a 100644
--- a/src/set_elem.c
+++ b/src/set_elem.c
@@ -690,7 +690,11 @@ struct nft_set_elems_iter *nft_set_elems_iter_create(struct nft_set *s)
iter->set = s;
iter->list = &s->element_list;
- iter->cur = list_entry(s->element_list.next, struct nft_set_elem, head);
+ if (list_empty(&s->element_list))
+ iter->cur = NULL;
+ else
+ iter->cur = list_entry(s->element_list.next,
+ struct nft_set_elem, head);
return iter;
}
@@ -706,6 +710,9 @@ struct nft_set_elem *nft_set_elems_iter_next(struct nft_set_elems_iter *iter)
{
struct nft_set_elem *s = iter->cur;
+ if (s == NULL)
+ return NULL;
+
iter->cur = list_entry(iter->cur->head.next, struct nft_set_elem, head);
if (&iter->cur->head == iter->list->next)
return NULL;