2009-11-02 16:42:33

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] cnic: ensure ulp_type is not negative

`ulp_type' is signed, make sure it is not negative
when we read the array element.

Signed-off-by: Roel Kluin <[email protected]>
---
drivers/net/cnic.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
index 3bf1b04..f384b0a 100644
--- a/drivers/net/cnic.c
+++ b/drivers/net/cnic.c
@@ -347,7 +347,7 @@ int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops)
{
struct cnic_dev *dev;

- if (ulp_type >= MAX_CNIC_ULP_TYPE) {
+ if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
printk(KERN_ERR PFX "cnic_register_driver: Bad type %d\n",
ulp_type);
return -EINVAL;
@@ -393,7 +393,7 @@ int cnic_unregister_driver(int ulp_type)
struct cnic_ulp_ops *ulp_ops;
int i = 0;

- if (ulp_type >= MAX_CNIC_ULP_TYPE) {
+ if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
printk(KERN_ERR PFX "cnic_unregister_driver: Bad type %d\n",
ulp_type);
return -EINVAL;
@@ -449,7 +449,7 @@ static int cnic_register_device(struct cnic_dev *dev, int ulp_type,
struct cnic_local *cp = dev->cnic_priv;
struct cnic_ulp_ops *ulp_ops;

- if (ulp_type >= MAX_CNIC_ULP_TYPE) {
+ if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
printk(KERN_ERR PFX "cnic_register_device: Bad type %d\n",
ulp_type);
return -EINVAL;
@@ -490,7 +490,7 @@ static int cnic_unregister_device(struct cnic_dev *dev, int ulp_type)
struct cnic_local *cp = dev->cnic_priv;
int i = 0;

- if (ulp_type >= MAX_CNIC_ULP_TYPE) {
+ if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
printk(KERN_ERR PFX "cnic_unregister_device: Bad type %d\n",
ulp_type);
return -EINVAL;


2009-11-02 18:06:34

by Michael Chan

[permalink] [raw]
Subject: Re: [PATCH] cnic: ensure ulp_type is not negative


On Mon, 2009-11-02 at 08:53 -0800, Roel Kluin wrote:
> `ulp_type' is signed, make sure it is not negative
> when we read the array element.
>
> Signed-off-by: Roel Kluin <[email protected]>

Looks good to me. Thanks.
Acked-by: Michael Chan <[email protected]>

> ---
> drivers/net/cnic.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
> index 3bf1b04..f384b0a 100644
> --- a/drivers/net/cnic.c
> +++ b/drivers/net/cnic.c
> @@ -347,7 +347,7 @@ int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops)
> {
> struct cnic_dev *dev;
>
> - if (ulp_type >= MAX_CNIC_ULP_TYPE) {
> + if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
> printk(KERN_ERR PFX "cnic_register_driver: Bad type %d\n",
> ulp_type);
> return -EINVAL;
> @@ -393,7 +393,7 @@ int cnic_unregister_driver(int ulp_type)
> struct cnic_ulp_ops *ulp_ops;
> int i = 0;
>
> - if (ulp_type >= MAX_CNIC_ULP_TYPE) {
> + if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
> printk(KERN_ERR PFX "cnic_unregister_driver: Bad type %d\n",
> ulp_type);
> return -EINVAL;
> @@ -449,7 +449,7 @@ static int cnic_register_device(struct cnic_dev *dev, int ulp_type,
> struct cnic_local *cp = dev->cnic_priv;
> struct cnic_ulp_ops *ulp_ops;
>
> - if (ulp_type >= MAX_CNIC_ULP_TYPE) {
> + if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
> printk(KERN_ERR PFX "cnic_register_device: Bad type %d\n",
> ulp_type);
> return -EINVAL;
> @@ -490,7 +490,7 @@ static int cnic_unregister_device(struct cnic_dev *dev, int ulp_type)
> struct cnic_local *cp = dev->cnic_priv;
> int i = 0;
>
> - if (ulp_type >= MAX_CNIC_ULP_TYPE) {
> + if (ulp_type < 0 || ulp_type >= MAX_CNIC_ULP_TYPE) {
> printk(KERN_ERR PFX "cnic_unregister_device: Bad type %d\n",
> ulp_type);
> return -EINVAL;
>

2009-11-04 13:06:53

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] cnic: ensure ulp_type is not negative

From: "Michael Chan" <[email protected]>
Date: Mon, 2 Nov 2009 09:56:59 -0800

>
> On Mon, 2009-11-02 at 08:53 -0800, Roel Kluin wrote:
>> `ulp_type' is signed, make sure it is not negative
>> when we read the array element.
>>
>> Signed-off-by: Roel Kluin <[email protected]>
>
> Looks good to me. Thanks.
> Acked-by: Michael Chan <[email protected]>

Applied to net-next-2.6