aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa
diff options
context:
space:
mode:
authorKrishna Gudipati <kgudipat@brocade.com>2011-12-20 21:54:30 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-01-10 18:01:23 -0500
commit6bc6204e3b7f4ac235e98e362714213369d6a012 (patch)
treee390f206bf9583446e22ab70408f5f70c2e4a08c /drivers/scsi/bfa
parentf1633011e4fcb65bf65aebeaf4024efdc4c49d6e (diff)
[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>
Diffstat (limited to 'drivers/scsi/bfa')
-rw-r--r--drivers/scsi/bfa/bfa_fcpim.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/bfa/bfa_fcpim.c b/drivers/scsi/bfa/bfa_fcpim.c
index e07bd4745d8b..846f15b6e1d8 100644
--- a/drivers/scsi/bfa/bfa_fcpim.c
+++ b/drivers/scsi/bfa/bfa_fcpim.c
@@ -2647,7 +2647,8 @@ bfa_fcpim_lunmask_add(struct bfa_s *bfa, u16 vf_id, wwn_t *pwwn,
2647 if (port) { 2647 if (port) {
2648 *pwwn = port->port_cfg.pwwn; 2648 *pwwn = port->port_cfg.pwwn;
2649 rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn); 2649 rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn);
2650 rp = rp_fcs->bfa_rport; 2650 if (rp_fcs)
2651 rp = rp_fcs->bfa_rport;
2651 } 2652 }
2652 2653
2653 lunm_list = bfa_get_lun_mask_list(bfa); 2654 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,
2715 if (port) { 2716 if (port) {
2716 *pwwn = port->port_cfg.pwwn; 2717 *pwwn = port->port_cfg.pwwn;
2717 rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn); 2718 rp_fcs = bfa_fcs_lport_get_rport_by_pwwn(port, rpwwn);
2718 rp = rp_fcs->bfa_rport; 2719 if (rp_fcs)
2720 rp = rp_fcs->bfa_rport;
2719 } 2721 }
2720 } 2722 }
2721 2723