diff options
author | pho <pho@FreeBSD.org> | 2008-12-27 10:13:43 +0000 |
---|---|---|
committer | pho <pho@FreeBSD.org> | 2008-12-27 10:13:43 +0000 |
commit | fbacc4af8363faaa38cc1a61d5827e3c61c3e60f (patch) | |
tree | b8688bfbca0832ed449fd319f797b0ec0e28d380 /sys/kern/vfs_syscalls.c | |
parent | 4a6f6562e4a18d08e5b76560c66f8790a550b2ee (diff) | |
download | FreeBSD-src-fbacc4af8363faaa38cc1a61d5827e3c61c3e60f.zip FreeBSD-src-fbacc4af8363faaa38cc1a61d5827e3c61c3e60f.tar.gz |
Prevent overflow of uio_resid.
Approved by: kib
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r-- | sys/kern/vfs_syscalls.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 198009d..4d3978a 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4069,6 +4069,8 @@ kern_getdirentries(struct thread *td, int fd, char *buf, u_int count, int error, eofflag; AUDIT_ARG(fd, fd); + if (count > INT_MAX) + return (EINVAL); if ((error = getvnode(td->td_proc->p_fd, fd, &fp)) != 0) return (error); if ((fp->f_flag & FREAD) == 0) { |