diff --git a/kern/sys_process.c b/kern/sys_process.c --- a/kern/sys_process.c +++ b/kern/sys_process.c @@ -439,7 +439,7 @@ uio.uio_iov = &iov; uio.uio_iovcnt = 1; uio.uio_offset = (off_t)(uintptr_t)piod->piod_offs; - uio.uio_resid = piod->piod_len; + uio.uio_resid = (piod->piod_len > (size_t)SSIZE_MAX) ? 0 : piod->piod_len; uio.uio_segflg = UIO_USERSPACE; uio.uio_td = curthread; switch (piod->piod_op) {