2009-11-01 14:22:00

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] m32r: Should index be positive?

Index `ipi_num' is signed, test whether it is negative to
make sure we don't get a negative array element.

Signed-off-by: Roel Kluin <[email protected]>
---
arch/m32r/kernel/smp.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

Found by code analysis, is it required?

diff --git a/arch/m32r/kernel/smp.c b/arch/m32r/kernel/smp.c
index 8a88f1f..31cef20 100644
--- a/arch/m32r/kernel/smp.c
+++ b/arch/m32r/kernel/smp.c
@@ -806,7 +806,7 @@ unsigned long send_IPI_mask_phys(cpumask_t physid_mask, int ipi_num,

if (mask & ~physids_coerce(phys_cpu_present_map))
BUG();
- if (ipi_num >= NR_IPIS)
+ if (ipi_num >= NR_IPIS || ipi_num < 0)
BUG();

mask <<= IPI_SHIFT;


2009-11-04 00:14:05

by Hirokazu Takata

[permalink] [raw]
Subject: Re: [PATCH] m32r: Should index be positive?

At Sun, 01 Nov 2009 15:33:06 +0100,
Roel Kluin wrote:
>
> Index `ipi_num' is signed, test whether it is negative to
> make sure we don't get a negative array element.
>
> Signed-off-by: Roel Kluin <[email protected]>
> ---
> arch/m32r/kernel/smp.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> Found by code analysis, is it required?
>
> diff --git a/arch/m32r/kernel/smp.c b/arch/m32r/kernel/smp.c
> index 8a88f1f..31cef20 100644
> --- a/arch/m32r/kernel/smp.c
> +++ b/arch/m32r/kernel/smp.c
> @@ -806,7 +806,7 @@ unsigned long send_IPI_mask_phys(cpumask_t physid_mask, int ipi_num,
>
> if (mask & ~physids_coerce(phys_cpu_present_map))
> BUG();
> - if (ipi_num >= NR_IPIS)
> + if (ipi_num >= NR_IPIS || ipi_num < 0)
> BUG();
>
> mask <<= IPI_SHIFT;
>

Acked-by: Hirokazu Takata <[email protected]>

It looks OK for me.
I've merged this patch into my tree.

Thank you.

-- Takata