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

Adrian Bunk bunk at stusta.de
Sat Mar 11 10:11:46 EST 2006


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 at 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 at 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");




More information about the Linux-parport mailing list