summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/cmd/dladm/dladm.c6
-rw-r--r--usr/src/lib/libdladm/common/libdlether.c4
2 files changed, 6 insertions, 4 deletions
diff --git a/usr/src/cmd/dladm/dladm.c b/usr/src/cmd/dladm/dladm.c
index a69b3da081..c59926be94 100644
--- a/usr/src/cmd/dladm/dladm.c
+++ b/usr/src/cmd/dladm/dladm.c
@@ -7857,8 +7857,9 @@ show_etherprop(dladm_handle_t dh, datalink_id_t linkid, void *arg)
}
status = dladm_ether_info(dh, linkid, &eattr);
- if (status != DLADM_STATUS_OK)
- goto cleanup;
+ if (status != DLADM_STATUS_OK) {
+ return (DLADM_WALK_CONTINUE);
+ }
(void) strlcpy(ebuf.eth_ptype, "current", sizeof (ebuf.eth_ptype));
@@ -7880,7 +7881,6 @@ show_etherprop(dladm_handle_t dh, datalink_id_t linkid, void *arg)
if (statep->es_extended)
show_ether_xprop(arg, &eattr);
-cleanup:
dladm_ether_info_done(&eattr);
return (DLADM_WALK_CONTINUE);
}
diff --git a/usr/src/lib/libdladm/common/libdlether.c b/usr/src/lib/libdladm/common/libdlether.c
index 4e3a7ead4c..2914174f62 100644
--- a/usr/src/lib/libdladm/common/libdlether.c
+++ b/usr/src/lib/libdladm/common/libdlether.c
@@ -375,6 +375,8 @@ dladm_ether_info_done(dladm_ether_info_t *eattr)
{
int i;
- for (i = CURRENT; i <= PEERADV; i++)
+ for (i = CURRENT; i <= PEERADV; i++) {
free(eattr->lei_attr[i].le_spdx);
+ eattr->lei_attr[i].le_spdx = NULL;
+ }
}