Create an empty package iterator when we don't know about the given file.
authorJames Bowes <jbowes@redhat.com>
Mon Jun 23 21:20:16 2008 -0400 (2008-06-23)
changeset 27897c12ddedfb3
parent 277 27b0d4068feb
child 279 5a20654e903c
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
     1.1 --- a/librazor/iterator.c	Mon Jun 23 20:48:48 2008 -0400
     1.2 +++ b/librazor/iterator.c	Mon Jun 23 21:20:16 2008 -0400
     1.3 @@ -36,6 +36,13 @@
     1.4  	return pi;
     1.5  }
     1.6  
     1.7 +static struct razor_package_iterator *
     1.8 +razor_package_iterator_create_empty(struct razor_set *set)
     1.9 +{
    1.10 +	struct razor_package_iterator *pi;
    1.11 +	return zalloc(sizeof *pi);
    1.12 +}
    1.13 +
    1.14  RAZOR_EXPORT struct razor_package_iterator *
    1.15  razor_package_iterator_create(struct razor_set *set)
    1.16  {
    1.17 @@ -78,7 +85,7 @@
    1.18  
    1.19  	entry = razor_set_find_entry(set, set->files.data, filename);
    1.20  	if (entry == NULL)
    1.21 -		return NULL;
    1.22 +		return razor_package_iterator_create_empty(set);
    1.23  
    1.24  	index = list_first(&entry->packages, &set->package_pool);
    1.25  	return razor_package_iterator_create_with_index(set, index);