The Coverity checker found this off-by-one error.
Signed-off-by: Adrian Bunk <[email protected]>
--- 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");
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 <[email protected]>
>
> --- 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>
---
~Randy
Please use an email client that implements proper (compliant) threading.
(You know who you are.)
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 <[email protected]>
> >
> > --- 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 <[email protected]>
---
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");