[2.6 patch] drivers/block/paride/pd.c: fix an off-by-one error

Adrian Bunk
2006-03-11T15:11:48Z

On Fri, Mar 10, 2006 at 08:03:50PM -0800, Randy.Dunlap wrote:
> On Sat, 11 Mar 2006 04:42:53 +0100 Adrian Bunk wrote:
>
> > The Coverity checker found this off-by-one error.
> >
> >
> > Signed-off-by: Adrian Bunk <bunk@stusta.de>
> >
> > --- linux-2.6.16-rc5-mm3-full/drivers/block/paride/pd.c.old 2006-03-11 02:07:21.000000000 +0100
> > +++ linux-2.6.16-rc5-mm3-full/drivers/block/paride/pd.c 2006-03-11 02:07:50.000000000 +0100
> > @@ -275,7 +275,7 @@
> > int i;
> >
> > printk("%s: %s: status = 0x%x =", disk->name, msg, status);
> > - for (i = 0; i < 18; i++)
> > + for (i = 0; i < 17; i++)
> > if (status & (1 << i))
> > printk(" %s", pd_errs[i]);
> > printk("\n");
>
> Please use ARRAY_SIZE(pd_errs)
> and #include <linux/kernel.h>

Sounds reasonable, updated patch below.

> ~Randy

cu
Adrian

<-- snip -->

The Coverity checker found this off-by-one error.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

drivers/block/paride/pd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- linux-2.6.16-rc5-mm3-full/drivers/block/paride/pd.c.old 2006-03-11 02:07:21.000000000 +0100
+++ linux-2.6.16-rc5-mm3-full/drivers/block/paride/pd.c 2006-03-11 15:36:00.000000000 +0100
@@ -151,6 +151,7 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_GEO,
#include <linux/cdrom.h> /* for the eject ioctl */
#include <linux/blkdev.h>
#include <linux/blkpg.h>
+#include <linux/kernel.h>
#include <asm/uaccess.h>
#include <linux/sched.h>
#include <linux/workqueue.h>
@@ -275,7 +276,7 @@ static void pd_print_error(struct pd_uni
int i;

printk("%s: %s: status = 0x%x =", disk->name, msg, status);
- for (i = 0; i < 18; i++)
+ for (i = 0; i < ARRAY_SIZE(pd_errs); i++)
if (status & (1 << i))
printk(" %s", pd_errs[i]);
printk("\n");