Re: [patch] iommu: off by one in dmar_get_fault_reason()

From: walter harms
Date: Sat May 12 2012 - 08:37:12 EST




Am 12.05.2012 12:59, schrieb Dan Carpenter:
> fault_reason == ARRAY_SIZE(irq_remap_fault_reasons) + 0x20 - 0x20 is one
> past the end of the array.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
>
> diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
> index 5ef65cf..9390f3f 100644
> --- a/drivers/iommu/dmar.c
> +++ b/drivers/iommu/dmar.c
> @@ -1057,7 +1057,7 @@ static const char *irq_remap_fault_reasons[] =
>
> const char *dmar_get_fault_reason(u8 fault_reason, int *fault_type)
> {
> - if (fault_reason >= 0x20 && (fault_reason <= 0x20 +
> + if (fault_reason >= 0x20 && (fault_reason < 0x20 +
> ARRAY_SIZE(irq_remap_fault_reasons))) {
> *fault_type = INTR_REMAP;
> return irq_remap_fault_reasons[fault_reason - 0x20];

perhaps this is more readable:
if (fault_reason >= 0x20 && (fault_reason - 0x20 < ARRAY_SIZE(irq_remap_fault_reasons)))

re,
wh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/