target: check hex2bin result
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Fri, 16 Sep 2011 12:50:30 +0000 (08:50 -0400)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Wed, 21 Sep 2011 12:27:43 +0000 (08:27 -0400)
Now that hex2bin does error checking, on error add debugging error msg.

Changelog v1 (update):
- fixed definition of 'ret'
- hex2bin now returns an int

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
drivers/target/target_core_fabric_lib.c

index c4ea3a9a555b4c35fc9d20495d8d3d492104e5e8..39f021b855ef3ff42897d9c9909541eca27fb2b6 100644 (file)
@@ -63,6 +63,7 @@ u32 sas_get_pr_transport_id(
        unsigned char *buf)
 {
        unsigned char *ptr;
+       int ret;
 
        /*
         * Set PROTOCOL IDENTIFIER to 6h for SAS
@@ -74,7 +75,9 @@ u32 sas_get_pr_transport_id(
         */
        ptr = &se_nacl->initiatorname[4]; /* Skip over 'naa. prefix */
 
-       hex2bin(&buf[4], ptr, 8);
+       ret = hex2bin(&buf[4], ptr, 8);
+       if (ret < 0)
+               pr_debug("sas transport_id: invalid hex string\n");
 
        /*
         * The SAS Transport ID is a hardcoded 24-byte length
@@ -156,8 +159,9 @@ u32 fc_get_pr_transport_id(
        unsigned char *buf)
 {
        unsigned char *ptr;
-       int i;
+       int i, ret;
        u32 off = 8;
+
        /*
         * PROTOCOL IDENTIFIER is 0h for FCP-2
         *
@@ -174,7 +178,9 @@ u32 fc_get_pr_transport_id(
                        i++;
                        continue;
                }
-               hex2bin(&buf[off++], &ptr[i], 1);
+               ret = hex2bin(&buf[off++], &ptr[i], 1);
+               if (ret < 0)
+                       pr_debug("fc transport_id: invalid hex string\n");
                i += 2;
        }
        /*