diff options
author | ache <ache@FreeBSD.org> | 2001-08-23 17:09:23 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2001-08-23 17:09:23 +0000 |
commit | 661af8586d3e565fb13cd14995c091f815ea4d87 (patch) | |
tree | 17ea226010307805199b81804fc906f162dff4b8 /sys/kern/kern_lockf.c | |
parent | df8be8c104e1c99b8198305e3a574ccfa40d04cf (diff) | |
download | FreeBSD-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.c | 3 |
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; |