summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bowes <jbowes@redhat.com>2008-06-23 21:20:16 -0400
committerJames Bowes <jbowes@redhat.com>2008-06-23 21:20:16 -0400
commitfd60e3a9808554f753e0466b36977aba98841656 (patch)
treed154827d475f5021a64824cc095ac381968b7b8a
parent24e8398fb80019f488396776df3b22f53c47c7a1 (diff)
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.
-rw-r--r--librazor/iterator.c9
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);