summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_lockf.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2001-08-23 17:09:23 +0000
committerache <ache@FreeBSD.org>2001-08-23 17:09:23 +0000
commit661af8586d3e565fb13cd14995c091f815ea4d87 (patch)
tree17ea226010307805199b81804fc906f162dff4b8 /sys/kern/kern_lockf.c
parentdf8be8c104e1c99b8198305e3a574ccfa40d04cf (diff)
downloadFreeBSD-src-661af8586d3e565fb13cd14995c091f815ea4d87.zip
FreeBSD-src-661af8586d3e565fb13cd14995c091f815ea4d87.tar.gz
Add yet one check for SEEK_END overflow
Diffstat (limited to 'sys/kern/kern_lockf.c')
-rw-r--r--sys/kern/kern_lockf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_lockf.c b/sys/kern/kern_lockf.c
index de8c75d..53c6017 100644
--- a/sys/kern/kern_lockf.c
+++ b/sys/kern/kern_lockf.c
@@ -122,7 +122,8 @@ lf_advlock(ap, head, size)
case SEEK_END:
/* 'size' is always >= 0 */
- if (fl->l_start > 0 && size > OFF_MAX - fl->l_start)
+ if ((fl->l_start > 0 && size > OFF_MAX - fl->l_start) ||
+ (fl->l_start < 0 && size + fl->l_start > OFF_MAX))
return (EOVERFLOW);
start = size + fl->l_start;
break;
OpenPOWER on IntegriCloud