From 3facafd61791b16f112797f1b07dde00ab6b9a59 Mon Sep 17 00:00:00 2001 From: Yuri Pankov Date: Wed, 12 Jul 2017 14:36:43 +0300 Subject: 8487 cfgadm_plugins/shp: memory leak in cfga_get_condition() Reviewed by: Dan Fields Reviewed by: Gordon Ross Reviewed by: Sanjay Nadkarni Reviewed by: Toomas Soome Reviewed by: Igor Kozhukhov Approved by: Robert Mustacchi --- usr/src/lib/cfgadm_plugins/shp/common/shp.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'usr/src') 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*/ -- cgit v1.2.3