scsi: qla2xxx: Fix possible fcport null-pointer dereferences
authorJia-Ju Bai <baijiaju1990@gmail.com>
Mon, 29 Jul 2019 08:44:51 +0000 (16:44 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 30 Jul 2019 16:49:46 +0000 (12:49 -0400)
commite82f04ec6ba91065fd33a6201ffd7cab840e1475
treeaa9866fe8914b1645e4e38a5b9b74b301d0f3ee9
parentdf9a606184bfdb5ae3ca9d226184e9489f5c24f7
scsi: qla2xxx: Fix possible fcport null-pointer dereferences

In qla2x00_alloc_fcport(), fcport is assigned to NULL in the error
handling code on line 4880:
    fcport = NULL;

Then fcport is used on lines 4883-4886:
    INIT_WORK(&fcport->del_work, qla24xx_delete_sess_fn);
INIT_WORK(&fcport->reg_work, qla_register_fcport_fn);
INIT_LIST_HEAD(&fcport->gnl_entry);
INIT_LIST_HEAD(&fcport->list);

Thus, possible null-pointer dereferences may occur.

To fix these bugs, qla2x00_alloc_fcport() directly returns NULL
in the error handling code.

These bugs are found by a static analysis tool STCheck written by us.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_init.c