From a93d95470803e9026c725fc7081ac8a06191ea6a Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 23 May 2013 14:38:56 +0200 Subject: [PATCH] Don't leak memory when encountering unknown match or target --- iptables.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/iptables.c b/iptables.c index f39ed1e..cea3fcd 100644 --- a/iptables.c +++ b/iptables.c @@ -1162,7 +1162,7 @@ fw3_ipt_rule_append(struct fw3_ipt_rule *r, const char *fmt, ...) if (!em) { fprintf(stderr, "fw3_ipt_rule_append(): Can't find match '%s'\n", optarg); - return; + goto free; } init_match(r, em, true); @@ -1174,7 +1174,7 @@ fw3_ipt_rule_append(struct fw3_ipt_rule *r, const char *fmt, ...) if (!et) { fprintf(stderr, "fw3_ipt_rule_append(): Can't find target '%s'\n", optarg); - return; + goto free; } break; @@ -1263,6 +1263,7 @@ fw3_ipt_rule_append(struct fw3_ipt_rule *r, const char *fmt, ...) free(e); } +free: for (i = 1; i < r->argc; i++) free(r->argv[i]); -- 2.30.2