if (!em)
{
fprintf(stderr, "fw3_ipt_rule_append(): Can't find match '%s'\n", optarg);
- return;
+ goto free;
}
init_match(r, em, true);
if (!et)
{
fprintf(stderr, "fw3_ipt_rule_append(): Can't find target '%s'\n", optarg);
- return;
+ goto free;
}
break;
free(e);
}
+free:
for (i = 1; i < r->argc; i++)
free(r->argv[i]);
xtables_rule_matches_free(&r->matches);
- free(r->target->t);
+ if (r->target)
+ free(r->target->t);
+
free(r);
/* reset all targets and matches */