target/sbc: Return INVALID_CDB_FIELD if DIF + sess_prot_type disabled
In sbc_check_prot(), if PROTECT is non-zero for a backend device with DIF disabled, and sess_prot_type is not set go ahead and return INVALID_CDB_FIELD. Reviewed-by: Martin Petersen <martin.petersen@oracle.com> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
bffb5128f9
commit
cceca4a638
|
@ -702,9 +702,13 @@ sbc_check_prot(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb,
|
|||
pi_prot_type = cmd->se_sess->sess_prot_type;
|
||||
break;
|
||||
}
|
||||
if (!protect)
|
||||
return TCM_NO_SENSE;
|
||||
/* Fallthrough */
|
||||
default:
|
||||
return TCM_NO_SENSE;
|
||||
pr_err("Unable to determine pi_prot_type for CDB: 0x%02x "
|
||||
"PROTECT: 0x%02x\n", cdb[0], protect);
|
||||
return TCM_INVALID_CDB_FIELD;
|
||||
}
|
||||
|
||||
if (sbc_set_prot_op_checks(protect, fabric_prot, pi_prot_type, is_write, cmd))
|
||||
|
|
Loading…
Reference in New Issue