diff options
author | kib <kib@FreeBSD.org> | 2009-05-11 19:58:03 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2009-05-11 19:58:03 +0000 |
commit | 60c4168558aba672e3503dbf2be06d5380c84d11 (patch) | |
tree | 51ef84e39a5232e4b25baa5f45e23ea0e642ac07 /sys/kern/vfs_syscalls.c | |
parent | 292f29fdfde93e9be02e8e6407fa41bbdc2556d3 (diff) | |
download | FreeBSD-src-60c4168558aba672e3503dbf2be06d5380c84d11.zip FreeBSD-src-60c4168558aba672e3503dbf2be06d5380c84d11.tar.gz |
Prevent overflow of uio_resid.
Noted by: jhb
MFC after: 3 days
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r-- | sys/kern/vfs_syscalls.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 98fbf1f..64ca316 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -2596,6 +2596,9 @@ kern_readlinkat(struct thread *td, int fd, char *path, enum uio_seg pathseg, struct nameidata nd; int vfslocked; + if (count > INT_MAX) + return (EINVAL); + NDINIT_AT(&nd, LOOKUP, NOFOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, fd, td); |