From: Liang Ma Date: Mon, 8 Apr 2019 16:19:16 +0000 (+0100) Subject: power: fix resource leak X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=3d45c3b0f5e10cb426b2cc8eb816af32d8d6e538 power: fix resource leak Fix the resource leaking issue Coverity issue: 337668 Fixes: b60fd5f8b1ce8f0a2c ("power: add bit for high frequency cores") Signed-off-by: Liang Ma Tested-by: David Hunt --- diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c index c2c4e8e144..44a0b4a3fa 100644 --- a/lib/librte_power/power_pstate_cpufreq.c +++ b/lib/librte_power/power_pstate_cpufreq.c @@ -158,6 +158,7 @@ power_init_for_setting_freq(struct pstate_power_info *pi) char *s_base; uint32_t base_ratio = 0; uint64_t max_non_turbo = 0; + int ret_val = 0; snprintf(fullpath_min, sizeof(fullpath_min), POWER_SYSFILE_MIN_FREQ, pi->lcore_id); @@ -199,8 +200,10 @@ power_init_for_setting_freq(struct pstate_power_info *pi) /* Add MSR read to detect turbo status */ - if (power_rdmsr(PLATFORM_INFO, &max_non_turbo, pi->lcore_id) < 0) - return -1; + if (power_rdmsr(PLATFORM_INFO, &max_non_turbo, pi->lcore_id) < 0) { + ret_val = -1; + goto out; + } max_non_turbo = (max_non_turbo&NON_TURBO_MASK)>>NON_TURBO_OFFSET; @@ -219,7 +222,9 @@ power_init_for_setting_freq(struct pstate_power_info *pi) pi->core_base_freq = base_ratio * BUS_FREQ; out: - return 0; + if (f_base != NULL) + fclose(f_base); + return ret_val; } static int