diff options
author | ache <ache@FreeBSD.org> | 2001-08-29 18:35:53 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2001-08-29 18:35:53 +0000 |
commit | 2718e600893a07376eef7b04996fdeab3aeff0da (patch) | |
tree | 43634297fbb2d5cae76b4a2c0132e577a30a0a69 | |
parent | 698b657986aef58992b3f3af1ee0c9d47cb02ed8 (diff) | |
download | FreeBSD-src-2718e600893a07376eef7b04996fdeab3aeff0da.zip FreeBSD-src-2718e600893a07376eef7b04996fdeab3aeff0da.tar.gz |
lseek: simplify overflow checks
-rw-r--r-- | sys/kern/vfs_extattr.c | 8 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c index 164d0f4..bb39292 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -1631,8 +1631,8 @@ lseek(p, uap) switch (SCARG(uap, whence)) { case L_INCR: if (noneg && - ((offset > 0 && fp->f_offset > OFF_MAX - offset) || - (offset < 0 && fp->f_offset < OFF_MIN - offset))) + (fp->f_offset < 0 || + (offset > 0 && fp->f_offset > OFF_MAX - offset))) return (EOVERFLOW); offset += fp->f_offset; break; @@ -1641,8 +1641,8 @@ lseek(p, uap) if (error) return (error); if (noneg && - ((offset > 0 && vattr.va_size > OFF_MAX - offset) || - (offset < 0 && vattr.va_size + offset > OFF_MAX))) + (vattr.va_size > OFF_MAX || + (offset > 0 && vattr.va_size > OFF_MAX - offset))) return (EOVERFLOW); offset += vattr.va_size; break; diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 164d0f4..bb39292 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1631,8 +1631,8 @@ lseek(p, uap) switch (SCARG(uap, whence)) { case L_INCR: if (noneg && - ((offset > 0 && fp->f_offset > OFF_MAX - offset) || - (offset < 0 && fp->f_offset < OFF_MIN - offset))) + (fp->f_offset < 0 || + (offset > 0 && fp->f_offset > OFF_MAX - offset))) return (EOVERFLOW); offset += fp->f_offset; break; @@ -1641,8 +1641,8 @@ lseek(p, uap) if (error) return (error); if (noneg && - ((offset > 0 && vattr.va_size > OFF_MAX - offset) || - (offset < 0 && vattr.va_size + offset > OFF_MAX))) + (vattr.va_size > OFF_MAX || + (offset > 0 && vattr.va_size > OFF_MAX - offset))) return (EOVERFLOW); offset += vattr.va_size; break; |