On Fri, 2013-02-08 at 15:18 -0800, Roland Dreier wrote: > From: Roland Dreier <roland@xxxxxxxxxxxxxxx> > > An empty parameter list (length == 0) is not an error, so succeed MODE > SELECT in this case. If the parameter list length is too small, > return the correct sense code of PARAMETER LIST LENGTH ERROR. > > Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx> > --- Applied. Thanks Roland! --nab > drivers/target/target_core_spc.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c > index 2d88f08..73c5d53 100644 > --- a/drivers/target/target_core_spc.c > +++ b/drivers/target/target_core_spc.c > @@ -983,6 +983,14 @@ static sense_reason_t spc_emulate_modeselect(struct se_cmd *cmd) > int ret = 0; > int i; > > + if (!cmd->data_length) { > + target_complete_cmd(cmd, GOOD); > + return 0; > + } > + > + if (cmd->data_length < off + 2) > + return TCM_PARAMETER_LIST_LENGTH_ERROR; > + > buf = transport_kmap_data_sg(cmd); > if (!buf) > return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; > @@ -1007,6 +1015,11 @@ static sense_reason_t spc_emulate_modeselect(struct se_cmd *cmd) > goto out; > > check_contents: > + if (cmd->data_length < off + length) { > + ret = TCM_PARAMETER_LIST_LENGTH_ERROR; > + goto out; > + } > + > if (memcmp(buf + off, tbuf, length)) > ret = TCM_INVALID_PARAMETER_LIST; > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html