summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorYuri Pankov <yuri.pankov@nexenta.com>2017-02-22 00:52:02 +0300
committerRobert Mustacchi <rm@joyent.com>2017-03-05 17:18:54 +0000
commit89ac1330de393e78c8b27c33453223b10d3c18da (patch)
tree78346d636ade7182ad0245318d96cbb0f4dc3bb9 /usr/src
parent39b16bd33a2633978bee6aed53e3afeb26399eb4 (diff)
downloadillumos-joyent-89ac1330de393e78c8b27c33453223b10d3c18da.tar.gz
7932 cfgadm_plugins/shp: memory leaks in cfga_list_ext()
Reviewed by: Jan Kryl <jan.kryl@nexenta.com> Reviewed by: Dan Fields <dan.fields@nexenta.com> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/cfgadm_plugins/shp/common/shp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr/src/lib/cfgadm_plugins/shp/common/shp.c b/usr/src/lib/cfgadm_plugins/shp/common/shp.c
index 50d335a1bc..f8bbda4f7f 100644
--- a/usr/src/lib/cfgadm_plugins/shp/common/shp.c
+++ b/usr/src/lib/cfgadm_plugins/shp/common/shp.c
@@ -1378,6 +1378,7 @@ cfga_list_ext(const char *ap_id, cfga_list_data_t **cs,
{
char *boardtype;
char *cardtype;
+ char *tmpb = NULL, *tmpc = NULL;
struct searcharg slotname_arg;
int fd;
int rv = CFGA_OK;
@@ -1498,16 +1499,16 @@ cfga_list_ext(const char *ap_id, cfga_list_data_t **cs,
(*cs)->ap_status_time = hp_last_change(node);
/* board type */
- if (hp_get_private(node, PCIEHPC_PROP_BOARD_TYPE, &boardtype) != 0)
+ if (hp_get_private(node, PCIEHPC_PROP_BOARD_TYPE, &tmpb) != 0)
boardtype = PCIEHPC_PROP_VALUE_UNKNOWN;
else
- boardtype = get_val_from_result(boardtype);
+ boardtype = get_val_from_result(tmpb);
/* card type */
- if (hp_get_private(node, PCIEHPC_PROP_CARD_TYPE, &cardtype) != 0)
+ if (hp_get_private(node, PCIEHPC_PROP_CARD_TYPE, &tmpc) != 0)
cardtype = PCIEHPC_PROP_VALUE_UNKNOWN;
else
- cardtype = get_val_from_result(cardtype);
+ cardtype = get_val_from_result(tmpc);
/* logical ap_id */
rv = fix_ap_name((*cs)->ap_log_id, ap_id,
@@ -1541,6 +1542,8 @@ cfga_list_ext(const char *ap_id, cfga_list_data_t **cs,
DBG(1, ("cfga_list_ext return success\n"));
rv = CFGA_OK;
+ free(tmpb);
+ free(tmpc);
hp_fini(node);
return (rv);
}