diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 59df4e80f..c7b560bf8 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c @@ -1220,13 +1220,13 @@ int ifupdown_main(int argc UNUSED_PARAM, char **argv) /* ifup */ if (iface_state) { bb_error_msg("interface %s already configured", iface); - continue; + goto next; } } else { /* ifdown */ if (!iface_state) { bb_error_msg("interface %s not configured", iface); - continue; + goto next; } } llist_free(state_list, free); @@ -1316,6 +1316,9 @@ int ifupdown_main(int argc UNUSED_PARAM, char **argv) fclose(state_fp); llist_free(state_list, free); } + next: + free(iface); + free(liface); } return any_failures; diff --git a/networking/nameif.c b/networking/nameif.c index d02c2c11b..6cf1c50c2 100644 --- a/networking/nameif.c +++ b/networking/nameif.c @@ -156,7 +156,7 @@ int nameif_main(int argc, char **argv) if (argc) { while (*argv) { - char *ifname = xstrdup(*argv++); + char *ifname = *argv++; prepend_new_eth_table(&clist, ifname, *argv++); } } else {