z80pack: add raw I/O offset check
authorAlan Cox <alan@linux.intel.com>
Sun, 25 Jan 2015 17:52:25 +0000 (17:52 +0000)
committerAlan Cox <alan@linux.intel.com>
Sun, 25 Jan 2015 17:52:25 +0000 (17:52 +0000)
Kernel/dev/z80pack/devfd.c

index 3a9fae2..05f5929 100644 (file)
@@ -79,6 +79,10 @@ static int fd_transfer(bool is_read, uint8_t minor, uint8_t rawflag)
     if(rawflag == 1) {
         dlen = udata.u_count;
         dptr = (uint16_t)udata.u_base;
+        if ((dlen|udata.u_offset) & 0x7F) {
+            udata.u_error = EIO;
+            return -1;
+        }
         block = udata.u_offset >> BLKSHIFT;
         block_xfer = dlen >> 7;                /* We want this in 128 byte sectors */
         map = 1;