* [PATCH] IXP4xx: Ensure index is positive @ 2009-11-03 19:10 Roel Kluin 2009-11-03 20:27 ` Karl Hiramoto 0 siblings, 1 reply; 5+ messages in thread From: Roel Kluin @ 2009-11-03 19:10 UTC (permalink / raw) To: linux-arm-kernel The indexes are signed, make sure they are not negative when we read the array elements. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> --- arch/arm/mach-ixp4xx/common.c | 2 +- arch/arm/mach-ixp4xx/ixp4xx_npe.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index cfd52fb..2df77bc 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c @@ -119,7 +119,7 @@ EXPORT_SYMBOL(gpio_to_irq); int irq_to_gpio(int irq) { - int gpio = (irq < 32) ? irq2gpio[irq] : -EINVAL; + int gpio = (irq < 32 && irq >= 0) ? irq2gpio[irq] : -EINVAL; if (gpio == -1) return -EINVAL; diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c index 47ac69c..30e1456 100644 --- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c +++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c @@ -667,7 +667,7 @@ err: struct npe *npe_request(int id) { - if (id < NPE_COUNT) + if (id >= 0 && id < NPE_COUNT) if (npe_tab[id].valid) if (try_module_get(THIS_MODULE)) return &npe_tab[id]; ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] IXP4xx: Ensure index is positive 2009-11-03 19:10 [PATCH] IXP4xx: Ensure index is positive Roel Kluin @ 2009-11-03 20:27 ` Karl Hiramoto 2009-11-03 21:23 ` Krzysztof Halasa 0 siblings, 1 reply; 5+ messages in thread From: Karl Hiramoto @ 2009-11-03 20:27 UTC (permalink / raw) To: linux-arm-kernel Roel Kluin wrote: > The indexes are signed, make sure they are not negative > when we read the array elements. > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > --- > arch/arm/mach-ixp4xx/common.c | 2 +- > arch/arm/mach-ixp4xx/ixp4xx_npe.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c > index cfd52fb..2df77bc 100644 > --- a/arch/arm/mach-ixp4xx/common.c > +++ b/arch/arm/mach-ixp4xx/common.c > @@ -119,7 +119,7 @@ EXPORT_SYMBOL(gpio_to_irq); > > int irq_to_gpio(int irq) > { > - int gpio = (irq < 32) ? irq2gpio[irq] : -EINVAL; > + int gpio = (irq < 32 && irq >= 0) ? irq2gpio[irq] : -EINVAL; > > if (gpio == -1) > return -EINVAL; > diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c > index 47ac69c..30e1456 100644 > --- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c > +++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c > @@ -667,7 +667,7 @@ err: > > struct npe *npe_request(int id) > { > - if (id < NPE_COUNT) > + if (id >= 0 && id < NPE_COUNT) > if (npe_tab[id].valid) > if (try_module_get(THIS_MODULE)) > return &npe_tab[id]; > > changing npe_request() to unsigned would probably be better and not add to bloat. If your calling these functions with negative arguments, your code is buggy then. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] IXP4xx: Ensure index is positive 2009-11-03 20:27 ` Karl Hiramoto @ 2009-11-03 21:23 ` Krzysztof Halasa 2009-11-03 22:05 ` Roel Kluin 0 siblings, 1 reply; 5+ messages in thread From: Krzysztof Halasa @ 2009-11-03 21:23 UTC (permalink / raw) To: linux-arm-kernel Karl Hiramoto <karl@hiramoto.org> writes: >> +++ b/arch/arm/mach-ixp4xx/common.c >> @@ -119,7 +119,7 @@ EXPORT_SYMBOL(gpio_to_irq); >> int irq_to_gpio(int irq) >> { >> - int gpio = (irq < 32) ? irq2gpio[irq] : -EINVAL; >> + int gpio = (irq < 32 && irq >= 0) ? irq2gpio[irq] : -EINVAL; >> if (gpio == -1) >> return -EINVAL; >> +++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c >> @@ -667,7 +667,7 @@ err: >> struct npe *npe_request(int id) >> { >> - if (id < NPE_COUNT) >> + if (id >= 0 && id < NPE_COUNT) > changing npe_request() to unsigned would probably be better and not > add to bloat. If your calling these functions with negative > arguments, your code is buggy then. Right. Both files in fact. Even the id < NPE_COUNT test is probably not needed but I can imagine someone lowering NPE_COUNT. Negative values are unreasonable (though unsigned type make this unrelevant, of course). -- Krzysztof Halasa ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] IXP4xx: Ensure index is positive 2009-11-03 21:23 ` Krzysztof Halasa @ 2009-11-03 22:05 ` Roel Kluin 2009-11-05 13:04 ` Krzysztof Halasa 0 siblings, 1 reply; 5+ messages in thread From: Roel Kluin @ 2009-11-03 22:05 UTC (permalink / raw) To: linux-arm-kernel The indexes were signed, so negatives were possible. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> --- Op 03-11-09 22:23, Krzysztof Halasa schreef: > Karl Hiramoto <karl@hiramoto.org> writes: >> changing npe_request() to unsigned would probably be better > Right. Both files in fact. > > Even the id < NPE_COUNT test is probably not needed but I can imagine > someone lowering NPE_COUNT. Negative values are unreasonable (though > unsigned type make this unrelevant, of course). arch/arm/mach-ixp4xx/common.c | 2 +- arch/arm/mach-ixp4xx/include/mach/gpio.h | 2 +- arch/arm/mach-ixp4xx/include/mach/npe.h | 2 +- arch/arm/mach-ixp4xx/ixp4xx_npe.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) Is this ok? diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index cfd52fb..3bbf40f 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c @@ -117,7 +117,7 @@ int gpio_to_irq(int gpio) } EXPORT_SYMBOL(gpio_to_irq); -int irq_to_gpio(int irq) +int irq_to_gpio(unsigned int irq) { int gpio = (irq < 32) ? irq2gpio[irq] : -EINVAL; diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h index cd5aec2..a5f87de 100644 --- a/arch/arm/mach-ixp4xx/include/mach/gpio.h +++ b/arch/arm/mach-ixp4xx/include/mach/gpio.h @@ -70,7 +70,7 @@ static inline void gpio_set_value(unsigned gpio, int value) #include <asm-generic/gpio.h> /* cansleep wrappers */ extern int gpio_to_irq(int gpio); -extern int irq_to_gpio(int gpio); +extern int irq_to_gpio(unsigned int irq); #endif diff --git a/arch/arm/mach-ixp4xx/include/mach/npe.h b/arch/arm/mach-ixp4xx/include/mach/npe.h index 37d0511..e320db2 100644 --- a/arch/arm/mach-ixp4xx/include/mach/npe.h +++ b/arch/arm/mach-ixp4xx/include/mach/npe.h @@ -33,7 +33,7 @@ int npe_send_message(struct npe *npe, const void *msg, const char *what); int npe_recv_message(struct npe *npe, void *msg, const char *what); int npe_send_recv_message(struct npe *npe, void *msg, const char *what); int npe_load_firmware(struct npe *npe, const char *name, struct device *dev); -struct npe *npe_request(int id); +struct npe *npe_request(unsigned id); void npe_release(struct npe *npe); #endif /* __IXP4XX_NPE_H */ diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c index 47ac69c..e8bb257 100644 --- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c +++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c @@ -665,7 +665,7 @@ err: } -struct npe *npe_request(int id) +struct npe *npe_request(unsigned id) { if (id < NPE_COUNT) if (npe_tab[id].valid) ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] IXP4xx: Ensure index is positive 2009-11-03 22:05 ` Roel Kluin @ 2009-11-05 13:04 ` Krzysztof Halasa 0 siblings, 0 replies; 5+ messages in thread From: Krzysztof Halasa @ 2009-11-05 13:04 UTC (permalink / raw) To: linux-arm-kernel Roel Kluin <roel.kluin@gmail.com> writes: > +++ b/arch/arm/mach-ixp4xx/common.c > @@ -117,7 +117,7 @@ int gpio_to_irq(int gpio) > } > EXPORT_SYMBOL(gpio_to_irq); > > -int irq_to_gpio(int irq) > +int irq_to_gpio(unsigned int irq) > { > int gpio = (irq < 32) ? irq2gpio[irq] : -EINVAL; > > diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h > index cd5aec2..a5f87de 100644 > --- a/arch/arm/mach-ixp4xx/include/mach/gpio.h > +++ b/arch/arm/mach-ixp4xx/include/mach/gpio.h > @@ -70,7 +70,7 @@ static inline void gpio_set_value(unsigned gpio, int value) > #include <asm-generic/gpio.h> /* cansleep wrappers */ > > extern int gpio_to_irq(int gpio); > -extern int irq_to_gpio(int gpio); > +extern int irq_to_gpio(unsigned int irq); > > #endif > > diff --git a/arch/arm/mach-ixp4xx/include/mach/npe.h b/arch/arm/mach-ixp4xx/include/mach/npe.h > index 37d0511..e320db2 100644 > --- a/arch/arm/mach-ixp4xx/include/mach/npe.h > +++ b/arch/arm/mach-ixp4xx/include/mach/npe.h > @@ -33,7 +33,7 @@ int npe_send_message(struct npe *npe, const void *msg, const char *what); > int npe_recv_message(struct npe *npe, void *msg, const char *what); > int npe_send_recv_message(struct npe *npe, void *msg, const char *what); > int npe_load_firmware(struct npe *npe, const char *name, struct device *dev); > -struct npe *npe_request(int id); > +struct npe *npe_request(unsigned id); > void npe_release(struct npe *npe); > > #endif /* __IXP4XX_NPE_H */ > diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c > index 47ac69c..e8bb257 100644 > --- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c > +++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c > @@ -665,7 +665,7 @@ err: > } > > > -struct npe *npe_request(int id) > +struct npe *npe_request(unsigned id) It looks good, thanks a lot. -- Krzysztof Halasa ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-11-05 13:04 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-11-03 19:10 [PATCH] IXP4xx: Ensure index is positive Roel Kluin 2009-11-03 20:27 ` Karl Hiramoto 2009-11-03 21:23 ` Krzysztof Halasa 2009-11-03 22:05 ` Roel Kluin 2009-11-05 13:04 ` Krzysztof Halasa
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).