diff options
author | ache <ache@FreeBSD.org> | 2001-10-25 22:56:04 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2001-10-25 22:56:04 +0000 |
commit | 7f305ae939fb3e71967691f0eff37bc5ec57a883 (patch) | |
tree | c9de2bf6f124eb0fdb57d507ce22093622e77bc3 /lib/libc/stdio | |
parent | 6c4623e897fe91440f283809edc5792e88cb20e1 (diff) | |
download | FreeBSD-src-7f305ae939fb3e71967691f0eff37bc5ec57a883.zip FreeBSD-src-7f305ae939fb3e71967691f0eff37bc5ec57a883.tar.gz |
In > LONG_MAX test use sseek return value and not _offset which can be not
active.
Diffstat (limited to 'lib/libc/stdio')
-rw-r--r-- | lib/libc/stdio/fseek.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libc/stdio/fseek.c b/lib/libc/stdio/fseek.c index 9dc8bd2..237d793 100644 --- a/lib/libc/stdio/fseek.c +++ b/lib/libc/stdio/fseek.c @@ -110,7 +110,7 @@ _fseeko(fp, offset, whence, ltest) int ltest; { register fpos_t (*seekfn) __P((void *, fpos_t, int)); - fpos_t target, curoff; + fpos_t target, curoff, ret; size_t n; struct stat st; int havepos; @@ -295,7 +295,8 @@ abspos: * do it. Allow the seek function to change fp->_bf._base. */ dumb: - if (__sflush(fp) || _sseek(fp, (fpos_t)offset, whence) == POS_ERR) + if (__sflush(fp) || + (ret = _sseek(fp, (fpos_t)offset, whence)) == POS_ERR) return (-1); /* success: clear EOF indicator and discard ungetc() data */ if (HASUB(fp)) @@ -304,7 +305,7 @@ dumb: fp->_r = 0; /* fp->_w = 0; */ /* unnecessary (I think...) */ fp->_flags &= ~__SEOF; - if (ltest && fp->_offset > LONG_MAX) { + if (ltest && ret > LONG_MAX) { fp->_flags |= __SERR; errno = EOVERFLOW; return (-1); |