[SCSI] bfa: Fix possible NULL pointer dereference in lunmask add/delete.

Patch fixes the possible NULL pointer dereference when we try to add or delete
a rpwwn to the lunmask config which is not zoned to this port.  Check if the
FCS rport is not NULL before de-referencing it.

Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Krishna Gudipati 2011-12-20 18:54:30 -08:00 committed by James Bottomley
parent f1633011e4
commit 6bc6204e3b

View File

@ -2647,7 +2647,8 @@ bfa_fcpim_lunmask_add(struct bfa_s *bfa, u16 vf_id, wwn_t *pwwn,
if (port) { if (port) {
*pwwn = port->port_cfg.pwwn; *pwwn = port->port_cfg.pwwn;
rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn); rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn);
rp = rp_fcs->bfa_rport; if (rp_fcs)
rp = rp_fcs->bfa_rport;
} }
lunm_list = bfa_get_lun_mask_list(bfa); lunm_list = bfa_get_lun_mask_list(bfa);
@ -2715,7 +2716,8 @@ bfa_fcpim_lunmask_delete(struct bfa_s *bfa, u16 vf_id, wwn_t *pwwn,
if (port) { if (port) {
*pwwn = port->port_cfg.pwwn; *pwwn = port->port_cfg.pwwn;
rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn); rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn);
rp = rp_fcs->bfa_rport; if (rp_fcs)
rp = rp_fcs->bfa_rport;
} }
} }