summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1994-09-02 14:04:39 +0000
committerdg <dg@FreeBSD.org>1994-09-02 14:04:39 +0000
commit454da81a5a43093536e525ae1926bf3810d901b9 (patch)
treeabc69b2a24177b2ed7ab2c122b8e387106eab20e /sys/kern/sys_generic.c
parent08512a312787c805fb1d699dd396b240686e267d (diff)
downloadFreeBSD-src-454da81a5a43093536e525ae1926bf3810d901b9.zip
FreeBSD-src-454da81a5a43093536e525ae1926bf3810d901b9.tar.gz
Make sure that uio_resid isn't negative in read().
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r--sys/kern/sys_generic.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index af58a5c..bf88b5a 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)sys_generic.c 8.5 (Berkeley) 1/21/94
- * $Id$
+ * $Id: sys_generic.c,v 1.3 1994/08/02 07:42:38 davidg Exp $
*/
#include <sys/param.h>
@@ -86,7 +86,11 @@ read(p, uap, retval)
aiov.iov_len = uap->nbyte;
auio.uio_iov = &aiov;
auio.uio_iovcnt = 1;
+
auio.uio_resid = uap->nbyte;
+ if (auio.uio_resid < 0)
+ return (EINVAL);
+
auio.uio_rw = UIO_READ;
auio.uio_segflg = UIO_USERSPACE;
auio.uio_procp = p;
OpenPOWER on IntegriCloud