summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorYuri Pankov <yuri.pankov@nexenta.com>2017-07-12 14:36:43 +0300
committerRobert Mustacchi <rm@joyent.com>2017-07-29 02:23:55 +0000
commit3facafd61791b16f112797f1b07dde00ab6b9a59 (patch)
tree06a675ade15211f36ccb71cc099532842fa426a5 /usr/src
parenta3bcc60de108dc761615b2b9561d6dc76971f471 (diff)
downloadillumos-gate-3facafd61791b16f112797f1b07dde00ab6b9a59.tar.gz
8487 cfgadm_plugins/shp: memory leak in cfga_get_condition()
Reviewed by: Dan Fields <dan.fields@nexenta.com> Reviewed by: Gordon Ross <gordon.ross@nexenta.com> Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@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 f8bbda4f7f..39647d9ad5 100644
--- a/usr/src/lib/cfgadm_plugins/shp/common/shp.c
+++ b/usr/src/lib/cfgadm_plugins/shp/common/shp.c
@@ -1344,15 +1344,17 @@ static cfga_err_t
cfga_get_condition(hp_node_t node, ap_condition_t *cond)
{
char *condition;
+ char *tmpc;
+ cfga_err_t ret = CFGA_OK;
/* "condition" bus specific commands */
if (hp_get_private(node, PCIEHPC_PROP_SLOT_CONDITION,
- &condition) != 0) {
+ &tmpc) != 0) {
*cond = AP_COND_UNKNOWN;
return (CFGA_ERROR);
}
- condition = get_val_from_result(condition);
+ condition = get_val_from_result(tmpc);
if (strcmp(condition, PCIEHPC_PROP_COND_OK) == 0)
*cond = AP_COND_OK;
@@ -1365,9 +1367,10 @@ cfga_get_condition(hp_node_t node, ap_condition_t *cond)
else if (strcmp(condition, PCIEHPC_PROP_COND_UNKNOWN) == 0)
*cond = AP_COND_UNKNOWN;
else
- return (CFGA_ERROR);
+ ret = CFGA_ERROR;
- return (CFGA_OK);
+ free(tmpc);
+ return (ret);
}
/*ARGSUSED*/