diff options
author | Yuri Pankov <yuri.pankov@nexenta.com> | 2017-07-12 14:36:43 +0300 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2017-07-29 02:23:55 +0000 |
commit | 3facafd61791b16f112797f1b07dde00ab6b9a59 (patch) | |
tree | 06a675ade15211f36ccb71cc099532842fa426a5 /usr/src | |
parent | a3bcc60de108dc761615b2b9561d6dc76971f471 (diff) | |
download | illumos-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.c | 11 |
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*/ |