scsi: libfc: check fc_frame_payload_get() return value for null
We should not assume the payload of a PRLI or PLOGI respons is always present. Signed-off-by: Thomas Abraham <tabraham@suse.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Arun Easi <arun.easi@cavium.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
a33e5bfb29
Коммит
aad1271a48
|
@ -1038,8 +1038,11 @@ static void fc_rport_plogi_resp(struct fc_seq *sp, struct fc_frame *fp,
|
|||
struct fc_els_ls_rjt *rjt;
|
||||
|
||||
rjt = fc_frame_payload_get(fp, sizeof(*rjt));
|
||||
FC_RPORT_DBG(rdata, "PLOGI ELS rejected, reason %x expl %x\n",
|
||||
rjt->er_reason, rjt->er_explan);
|
||||
if (!rjt)
|
||||
FC_RPORT_DBG(rdata, "PLOGI bad response\n");
|
||||
else
|
||||
FC_RPORT_DBG(rdata, "PLOGI ELS rejected, reason %x expl %x\n",
|
||||
rjt->er_reason, rjt->er_explan);
|
||||
fc_rport_error_retry(rdata, -FC_EX_ELS_RJT);
|
||||
}
|
||||
out:
|
||||
|
@ -1211,8 +1214,11 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
|
|||
|
||||
} else {
|
||||
rjt = fc_frame_payload_get(fp, sizeof(*rjt));
|
||||
FC_RPORT_DBG(rdata, "PRLI ELS rejected, reason %x expl %x\n",
|
||||
rjt->er_reason, rjt->er_explan);
|
||||
if (!rjt)
|
||||
FC_RPORT_DBG(rdata, "PRLI bad response\n");
|
||||
else
|
||||
FC_RPORT_DBG(rdata, "PRLI ELS rejected, reason %x expl %x\n",
|
||||
rjt->er_reason, rjt->er_explan);
|
||||
fc_rport_error_retry(rdata, FC_EX_ELS_RJT);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче