diff options
Diffstat (limited to 'src/table.c')
-rw-r--r-- | src/table.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/table.c b/src/table.c index c93e6fb..e947394 100644 --- a/src/table.c +++ b/src/table.c @@ -544,7 +544,10 @@ struct nft_table_list_iter *nft_table_list_iter_create(struct nft_table_list *l) return NULL; iter->list = l; - iter->cur = list_entry(l->list.next, struct nft_table, head); + if (nft_table_list_is_empty(l)) + iter->cur = NULL; + else + iter->cur = list_entry(l->list.next, struct nft_table, head); return iter; } @@ -554,6 +557,9 @@ struct nft_table *nft_table_list_iter_next(struct nft_table_list_iter *iter) { struct nft_table *r = iter->cur; + if (r == NULL) + return NULL; + /* get next table, if any */ iter->cur = list_entry(iter->cur->head.next, struct nft_table, head); if (&iter->cur->head == iter->list->list.next) |