Hi, I've been running the following patch (which uses discreet tests vs a common temp off_t variable). Would someone please consider committing either this patch or the one given in the pr? It doesn't really matter to me, but I would like to see this bug put to rest. Comments welcome! Thanks, John ps: The following patch differs from the one given in the pr for the simple reason that I don't like making assumptions about overflow handling during math operations. In the patch below, L_XTND nolonger depends on overflow assumptions, but L_INCR still does. L_INCR really needs to be something like: if ((MAXFILESIZE - fp->f_offset) < SCARG(uap, offset)) return (EINVAL); but, I am not aware of a MAXFILESIZE definition unless I try to construct one using operations based on the sizeof() an off_t. Comments? patch by [EMAIL PROTECTED] Index: vfs_syscalls.c =================================================================== RCS file: /mirror/ncvs/src/sys/kern/vfs_syscalls.c,v retrieving revision 1.135 diff -u -r1.135 vfs_syscalls.c --- vfs_syscalls.c 1999/09/11 00:45:58 1.135 +++ vfs_syscalls.c 1999/09/19 02:48:59 @@ -1433,15 +1433,22 @@ return (ESPIPE); switch (SCARG(uap, whence)) { case L_INCR: + if ((fp->f_offset + SCARG(uap, offset)) < 0) + return (EINVAL); fp->f_offset += SCARG(uap, offset); break; case L_XTND: error=VOP_GETATTR((struct vnode *)fp->f_data, &vattr, cred, p); if (error) return (error); + if ((SCARG(uap, offset) < 0) && + ((-SCARG(uap, offset)) > vattr.va_size)) + return (EINVAL); fp->f_offset = SCARG(uap, offset) + vattr.va_size; break; case L_SET: + if (SCARG(uap, offset) < 0) + return (EINVAL); fp->f_offset = SCARG(uap, offset); break; default: > On Tue, Aug 24, 1999 at 04:25:26PM -0400, John W. DeBoskey wrote: > > > The subject says it all... We have some code that scans files > > backwards... > > > > In looking through /usr/src/sys/kern/vfs_syscalls.c I can't see > > where we do any validation on the resulting seek location... Do the > > appropriate folks think this is a bug? How about posix? Should I > > go ahead and submit a pr with a patch? > > I've just discovered kern/6184 (from Mar 1998, state: open). Seems like > patch which fixes it was never commited. > > V. > > > To Unsubscribe: send mail to [EMAIL PROTECTED] > with "unsubscribe freebsd-hackers" in the body of the message > > ------------------------------ > To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message