From 4c0c403317913e6fb8b5cfd309dd51d3162dbfe8 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 25 Jan 2015 17:52:25 +0000 Subject: [PATCH] z80pack: add raw I/O offset check --- Kernel/dev/z80pack/devfd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Kernel/dev/z80pack/devfd.c b/Kernel/dev/z80pack/devfd.c index 3a9fae23..05f59291 100644 --- a/Kernel/dev/z80pack/devfd.c +++ b/Kernel/dev/z80pack/devfd.c @@ -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; -- 2.34.1