From: Samuel Ortiz Date: Fri, 29 Oct 2010 21:43:48 +0000 (+0200) Subject: iptables-test: Properly clean tables up X-Git-Tag: 2.0_alpha~2249 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e6e46384e7459fbcfc84a89930c3ca66fe0a1c5f;p=framework%2Fconnectivity%2Fconnman.git iptables-test: Properly clean tables up --- diff --git a/tools/iptables-test.c b/tools/iptables-test.c index f6114b8..a979cba 100644 --- a/tools/iptables-test.c +++ b/tools/iptables-test.c @@ -722,7 +722,17 @@ static int connman_iptables_replace(struct connman_iptables *table, static void connman_iptables_cleanup(struct connman_iptables *table) { + GList *list; + struct connman_iptables_entry *entry; + close(table->ipt_sock); + + for (list = table->entries; list; list = list->next) { + entry = list->data; + + g_free(entry->entry); + } + g_free(table->info); g_free(table->blob_entries); g_free(table); @@ -741,7 +751,15 @@ static int connman_iptables_commit(struct connman_iptables *table) static int add_entry(struct ipt_entry *entry, struct connman_iptables *table) { - return connman_add_entry(table, entry, NULL); + struct ipt_entry *new_entry; + + new_entry = g_try_malloc0(entry->next_offset); + if (new_entry == NULL) + return -ENOMEM; + + memcpy(new_entry, entry, entry->next_offset); + + return connman_add_entry(table, new_entry, NULL); } static struct connman_iptables *connman_iptables_init(const char *table_name)