Check for invalid offset when submitting an AIO read/write request.

PiperOrigin-RevId: 202528335
Change-Id: Ic32312cf4337bcb40a7155cb2174e5cd89a280f7
This commit is contained in:
Nicolas Lacasse
2018-06-28 12:55:18 -07:00
committed by Shentubot
parent 8459390cdd
commit 1ceed49ba9
+8
View File
@@ -319,6 +319,14 @@ func submitCallback(t *kernel.Task, id uint64, cb *ioCallback, cbAddr usermem.Ad
return err
}
// Check offset for reads/writes.
switch cb.OpCode {
case _IOCB_CMD_PREAD, _IOCB_CMD_PREADV, _IOCB_CMD_PWRITE, _IOCB_CMD_PWRITEV:
if cb.Offset < 0 {
return syserror.EINVAL
}
}
// Prepare the request.
ctx, ok := t.MemoryManager().LookupAIOContext(t, id)
if !ok {