scsi: bfa: Do not dereference port before it is null checked
authorColin Ian King <colin.king@canonical.com>
Tue, 30 Aug 2016 16:36:16 +0000 (17:36 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 2 Sep 2016 10:09:16 +0000 (06:09 -0400)
Port is deferenced before it is null sanity checked, hence we
potentially have a null pointer dereference bug. Instead, initialise
trl_enabled from port->fcs->bfa after we are sure port is not null.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/bfa/bfa_fcs_lport.c

index 7733ad5..4ddda72 100644 (file)
@@ -5827,13 +5827,13 @@ bfa_fcs_lport_get_rport_max_speed(bfa_fcs_lport_t *port)
        bfa_port_speed_t max_speed = 0;
        struct bfa_port_attr_s port_attr;
        bfa_port_speed_t port_speed, rport_speed;
-       bfa_boolean_t trl_enabled = bfa_fcport_is_ratelim(port->fcs->bfa);
-
+       bfa_boolean_t trl_enabled;
 
        if (port == NULL)
                return 0;
 
        fcs = port->fcs;
+       trl_enabled = bfa_fcport_is_ratelim(port->fcs->bfa);
 
        /* Get Physical port's current speed */
        bfa_fcport_get_attr(port->fcs->bfa, &port_attr);