summaryrefslogtreecommitdiffstats
path: root/libiptc
diff options
context:
space:
mode:
authorlaforge <laforge>2003-04-30 15:57:01 +0000
committerlaforge <laforge>2003-04-30 15:57:01 +0000
commitb7419a21972ae6627cc195c0cf4efc8fe26e4e54 (patch)
treed007c7b91553ccd96a321bda8ce96dc49202ac3b /libiptc
parentee49a81bae86be8b59ba3ac1b3df0a7fb458b9ec (diff)
Fix libiptc memory hole during iptc_chain_next() (Tomas Lejdar)
Diffstat (limited to 'libiptc')
-rw-r--r--libiptc/libiptc.c6
1 files changed, 4 insertions, 2 deletions
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 @@ TC_NEXT_CHAIN(TC_HANDLE_T *handle)
(*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;
}