From fd60e3a9808554f753e0466b36977aba98841656 Mon Sep 17 00:00:00 2001 From: James Bowes Date: Mon, 23 Jun 2008 21:20:16 -0400 Subject: [PATCH] Create an empty package iterator when we don't know about the given file. This is an easy way to stop segfaults when trying to destroy iterators for unknown files. --- librazor/iterator.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/librazor/iterator.c b/librazor/iterator.c index e684d7b..1169630 100644 --- a/librazor/iterator.c +++ b/librazor/iterator.c @@ -36,6 +36,13 @@ razor_package_iterator_create_with_index(struct razor_set *set, return pi; } +static struct razor_package_iterator * +razor_package_iterator_create_empty(struct razor_set *set) +{ + struct razor_package_iterator *pi; + return zalloc(sizeof *pi); +} + RAZOR_EXPORT struct razor_package_iterator * razor_package_iterator_create(struct razor_set *set) { @@ -78,7 +85,7 @@ razor_package_iterator_create_for_file(struct razor_set *set, entry = razor_set_find_entry(set, set->files.data, filename); if (entry == NULL) - return NULL; + return razor_package_iterator_create_empty(set); index = list_first(&entry->packages, &set->package_pool); return razor_package_iterator_create_with_index(set, index); -- 1.7.1