diff options
Diffstat (limited to 'src/set_elem.c')
-rw-r--r-- | src/set_elem.c | 9 |
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; |