summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2009-05-11 19:58:03 +0000
committerkib <kib@FreeBSD.org>2009-05-11 19:58:03 +0000
commit60c4168558aba672e3503dbf2be06d5380c84d11 (patch)
tree51ef84e39a5232e4b25baa5f45e23ea0e642ac07 /sys/kern/vfs_syscalls.c
parent292f29fdfde93e9be02e8e6407fa41bbdc2556d3 (diff)
downloadFreeBSD-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.c3
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);
OpenPOWER on IntegriCloud