target: prevent NULL pointer dereference in target_report_luns
authorJörn Engel <joern@logfs.org>
Wed, 15 Feb 2012 21:52:11 +0000 (16:52 -0500)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 25 Feb 2012 22:37:50 +0000 (14:37 -0800)
transport_kmap_data_sg can return NULL.  I never saw this trigger, but
returning -ENOMEM seems better than a crash.  Also removes a pointless
case while at it.

Signed-off-by: Joern Engel <joern@logfs.org>
Cc: stable@vger.kernel.org
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_device.c

index b0572f480c04b9281e808e83757804bf6f59283e..36fa75da085c5572c62aa3c15fce74f63460c692 100644 (file)
@@ -652,7 +652,9 @@ int target_report_luns(struct se_task *se_task)
        unsigned char *buf;
        u32 cdb_offset = 0, lun_count = 0, offset = 8, i;
 
-       buf = (unsigned char *) transport_kmap_data_sg(se_cmd);
+       buf = transport_kmap_data_sg(se_cmd);
+       if (!buf)
+               return -ENOMEM;
 
        /*
         * If no struct se_session pointer is present, this struct se_cmd is