cnic: ensure ulp_type is not negative
authorroel kluin <roel.kluin@gmail.com>
Mon, 2 Nov 2009 06:53:44 +0000 (06:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Nov 2009 13:06:23 +0000 (05:06 -0800)
`ulp_type' is signed, make sure it is not negative
when we read the array element.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/cnic.c

index cfc6b208631a1165ce012eedae26a6d42b19a6f8..e503384e2a5409d984016ca0f920bc7bcd1d43f6 100644 (file)
@@ -408,7 +408,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;
@@ -454,7 +454,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;
@@ -510,7 +510,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;
@@ -551,7 +551,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;