summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libnet_if_addr.c27
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;
}
/**