All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] st: reject MTIOCTOP mt_count values out of range for the SPACE(6) scsi command
@ 2021-01-13  2:24 Patrick Strateman
  2021-01-27  4:24 ` Martin K. Petersen
  2021-03-11 19:04 ` "Kai Mäkisara (Kolumbus)"
  0 siblings, 2 replies; 5+ messages in thread
From: Patrick Strateman @ 2021-01-13  2:24 UTC (permalink / raw)
  To: linux-scsi; +Cc: Kai Mäkisara

Values greater than 0x7FFFFF do not fit in the 24 bit big endian two's
complement integer for the underlying scsi SPACE(6) command.

Signed-off-by: Patrick Strateman <patrick.strateman@gmail.com>
---
 drivers/scsi/st.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 43f7624508a9..190fa678d149 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -2719,6 +2719,22 @@ static int st_int_ioctl(struct scsi_tape *STp,
unsigned int cmd_in, unsigned lon
     blkno = STps->drv_block;
     at_sm = STps->at_sm;

+    switch (cmd_in) {
+    case MTFSFM:
+    case MTFSF:
+    case MTBSFM:
+    case MTBSF:
+    case MTFSR:
+    case MTBSR:
+    case MTFSS:
+    case MTBSS:
+        // count field for SPACE(6) is a 24 bit big endian two's
complement integer
+        if (arg > 0x7FFFFF) {
+            st_printk(ST_DEB_MSG, STp, "Cannot space more than
0x7FFFFF units.\n");
+            return (-EINVAL);
+        }
+    }
+
     memset(cmd, 0, MAX_COMMAND_SIZE);
     switch (cmd_in) {
     case MTFSFM:

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-03-11 19:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-13  2:24 [PATCH] st: reject MTIOCTOP mt_count values out of range for the SPACE(6) scsi command Patrick Strateman
2021-01-27  4:24 ` Martin K. Petersen
2021-01-27  4:44   ` Patrick Strateman
2021-01-27  5:00     ` Martin K. Petersen
2021-03-11 19:04 ` "Kai Mäkisara (Kolumbus)"

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.