2016-04-24 18:18:35

by Colin King

[permalink] [raw]
Subject: [PATCH] tools/power turbostat: fix overflow read on array slm_freq_table

From: Colin Ian King <[email protected]>

When i >= SLM_BCLK_FREQS, the frequency read from the slm_freq_table
is off the end of the array because msr is set to 3 rather than the
actual array index i. Set i to 3 rather than msr to fix this.

Signed-off-by: Colin Ian King <[email protected]>
---
tools/power/x86/turbostat/turbostat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index acbf7ff..a66f07c 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -3050,7 +3050,7 @@ double slm_bclk(void)
i = msr & 0xf;
if (i >= SLM_BCLK_FREQS) {
fprintf(outf, "SLM BCLK[%d] invalid\n", i);
- msr = 3;
+ i = 3;
}
freq = slm_freq_table[i];

--
2.7.4


2016-04-25 12:00:34

by Wysocki, Rafael J

[permalink] [raw]
Subject: Re: [PATCH] tools/power turbostat: fix overflow read on array slm_freq_table

On 4/24/2016 8:18 PM, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> When i >= SLM_BCLK_FREQS, the frequency read from the slm_freq_table
> is off the end of the array because msr is set to 3 rather than the
> actual array index i. Set i to 3 rather than msr to fix this.
>
> Signed-off-by: Colin Ian King <[email protected]>

Can you please CC this to [email protected]? It is easier to
handle then.

> ---
> tools/power/x86/turbostat/turbostat.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
> index acbf7ff..a66f07c 100644
> --- a/tools/power/x86/turbostat/turbostat.c
> +++ b/tools/power/x86/turbostat/turbostat.c
> @@ -3050,7 +3050,7 @@ double slm_bclk(void)
> i = msr & 0xf;
> if (i >= SLM_BCLK_FREQS) {
> fprintf(outf, "SLM BCLK[%d] invalid\n", i);
> - msr = 3;
> + i = 3;
> }
> freq = slm_freq_table[i];
>