diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/stdio/fseek.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libc/stdio/fseek.c b/lib/libc/stdio/fseek.c index 8dc36e6..5af0bac 100644 --- a/lib/libc/stdio/fseek.c +++ b/lib/libc/stdio/fseek.c @@ -155,6 +155,10 @@ _fseeko(fp, offset, whence, ltest) errno = EINVAL; return (EOF); } + if (ltest && offset > LONG_MAX) { + errno = EOVERFLOW; + return (EOF); + } whence = SEEK_SET; havepos = 1; break; @@ -219,6 +223,10 @@ _fseeko(fp, offset, whence, ltest) errno = EINVAL; return (EOF); } + if (ltest && (off_t)target > LONG_MAX) { + errno = EOVERFLOW; + return (EOF); + } } if (!havepos) { |