summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2001-08-29 18:35:53 +0000
committerache <ache@FreeBSD.org>2001-08-29 18:35:53 +0000
commit2718e600893a07376eef7b04996fdeab3aeff0da (patch)
tree43634297fbb2d5cae76b4a2c0132e577a30a0a69
parent698b657986aef58992b3f3af1ee0c9d47cb02ed8 (diff)
downloadFreeBSD-src-2718e600893a07376eef7b04996fdeab3aeff0da.zip
FreeBSD-src-2718e600893a07376eef7b04996fdeab3aeff0da.tar.gz
lseek: simplify overflow checks
-rw-r--r--sys/kern/vfs_extattr.c8
-rw-r--r--sys/kern/vfs_syscalls.c8
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;
OpenPOWER on IntegriCloud