diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2005-07-14 16:40:04 -0700 |
---|---|---|
committer | Chris Wright <chrisw@osdl.org> | 2005-08-05 00:04:14 -0700 |
commit | 50eb930a92e7070f6a110789245398bff4061059 (patch) | |
tree | ccc055cf0f2f2e22eb0011ddef304a5b167067a2 /drivers | |
parent | ab998a6790272b6f45a63d9ef763efd435eae23a (diff) |
[PATCH] qla2xxx: Correct handling of fc_remote_port_add() failure case.
Correct handling of fc_remote_port_add() failure case.
Immediately return if fc_remote_port_add() fails to allocate
resources for the rport. Original code would result in NULL
pointer dereference upon failure.
Reported-by: Michael Reed <mdr@sgi.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 0387005fcb6d..4d624881e2bc 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1914,9 +1914,11 @@ qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport) rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET; fcport->rport = rport = fc_remote_port_add(ha->host, 0, &rport_ids); - if (!rport) + if (!rport) { qla_printk(KERN_WARNING, ha, "Unable to allocate fc remote port!\n"); + return; + } if (rport->scsi_target_id != -1 && rport->scsi_target_id < MAX_TARGETS) fcport->os_target_id = rport->scsi_target_id; |