diff options
Diffstat (limited to 'src/libnet_if_addr.c')
-rw-r--r-- | src/libnet_if_addr.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/libnet_if_addr.c b/src/libnet_if_addr.c index 6d8f738..b824a4d 100644 --- a/src/libnet_if_addr.c +++ b/src/libnet_if_addr.c @@ -488,22 +488,21 @@ libnet_select_device(libnet_t *l) } good: - for (i = 0; i < c; i++) - { - free(al[i].device); - al[i].device = NULL; - } - free(al); - return (1); - + rc = 1; + goto end; bad: - for (i = 0; i < c; i++) - { - free(al[i].device); - al[i].device = NULL; + rc = -1; +end: + if (al) { + for (i = 0; i < c; i++) + { + free(al[i].device); + al[i].device = NULL; + } + free(al); } - free(al); - return (-1); + + return rc; } /** |