lib/power: fix freq list function to handle null

Message ID 20190107143934.6981-1-david.hunt@intel.com
State Accepted
Delegated to: Thomas Monjalon
Headers show
Series
  • lib/power: fix freq list function to handle null
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

David Hunt Jan. 7, 2019, 2:39 p.m.
This patch fixes a segfault in the case where a null buffer is passed
to the following functions:
   power_acpi_cpufreq_freqs()
   power_pstate_cpufreq_freqs()

Fixes: 445c6528b55f ("power: common interface for guest and host")

Signed-off-by: David Hunt <david.hunt@intel.com>
---
 lib/librte_power/power_acpi_cpufreq.c   | 5 +++++
 lib/librte_power/power_pstate_cpufreq.c | 5 +++++
 2 files changed, 10 insertions(+)

Comments

Thomas Monjalon Jan. 14, 2019, 10:47 p.m. | #1
07/01/2019 15:39, David Hunt:
> This patch fixes a segfault in the case where a null buffer is passed
> to the following functions:
>    power_acpi_cpufreq_freqs()
>    power_pstate_cpufreq_freqs()
> 
> Fixes: 445c6528b55f ("power: common interface for guest and host")
> 
> Signed-off-by: David Hunt <david.hunt@intel.com>

Applied, thanks

Patch

diff --git a/lib/librte_power/power_acpi_cpufreq.c b/lib/librte_power/power_acpi_cpufreq.c
index cd5978d5b..98dcde31d 100644
--- a/lib/librte_power/power_acpi_cpufreq.c
+++ b/lib/librte_power/power_acpi_cpufreq.c
@@ -441,6 +441,11 @@  power_acpi_cpufreq_freqs(unsigned int lcore_id, uint32_t *freqs, uint32_t num)
 		return 0;
 	}
 
+	if (freqs == NULL) {
+		RTE_LOG(ERR, POWER, "NULL buffer supplied\n");
+		return 0;
+	}
+
 	pi = &lcore_power_info[lcore_id];
 	if (num < pi->nb_freqs) {
 		RTE_LOG(ERR, POWER, "Buffer size is not enough\n");
diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
index 411d0eb16..0a566eb07 100644
--- a/lib/librte_power/power_pstate_cpufreq.c
+++ b/lib/librte_power/power_pstate_cpufreq.c
@@ -580,6 +580,11 @@  power_pstate_cpufreq_freqs(unsigned int lcore_id, uint32_t *freqs, uint32_t num)
 		return -1;
 	}
 
+	if (freqs == NULL) {
+		RTE_LOG(ERR, POWER, "NULL buffer supplied\n");
+		return 0;
+	}
+
 	pi = &lcore_power_info[lcore_id];
 	if (num < pi->nb_freqs) {
 		RTE_LOG(ERR, POWER, "Buffer size is not enough\n");