Fix libiptc memory hole during iptc_chain_next() (Tomas Lejdar)
diff --git a/libiptc/libiptc.c b/libiptc/libiptc.c
index 985b9b0..55b708b 100644
--- a/libiptc/libiptc.c
+++ b/libiptc/libiptc.c
@@ -1,4 +1,4 @@
-/* Library which manipulates firewall rules. Version $Revision: 1.34 $ */
+/* Library which manipulates firewall rules. Version $Revision: 1.35 $ */
/* Architecture of firewall rules is as follows:
*
@@ -504,8 +504,10 @@
(*handle)->cache_chain_iteration++;
if ((*handle)->cache_chain_iteration - (*handle)->cache_chain_heads
- == (*handle)->cache_num_chains)
+ == (*handle)->cache_num_chains) {
+ free((*handle)->cache_chain_heads);
return NULL;
+ }
return (*handle)->cache_chain_iteration->name;
}