Page MenuHomeFreeBSD

D46611.id.diff
No OneTemporary

D46611.id.diff

diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -7461,16 +7461,20 @@
total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32;
break;
case RSO_OPTIONS_OC_SA:
- if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 ||
- service_action >= 32) {
+ if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0) {
goto invalid_options;
}
- total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32;
- break;
+ /* FALLTHROUGH */
case RSO_OPTIONS_OC_ASA:
- if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 &&
- service_action >= 32) {
- goto invalid_options;
+ if (service_action >= 32) {
+ ctl_set_invalid_field(/*ctsio*/ ctsio,
+ /*sks_valid*/ 1,
+ /*command*/ 1,
+ /*field*/ 4,
+ /*bit_valid*/ 0,
+ /*bit*/ 0);
+ ctl_done((union ctl_io *)ctsio);
+ return (CTL_RETVAL_COMPLETE);
}
total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32;
break;

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 19, 12:10 PM (6 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27743142
Default Alt Text
D46611.id.diff (1 KB)

Event Timeline