summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio/fseek.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/stdio/fseek.c')
-rw-r--r--lib/libc/stdio/fseek.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/libc/stdio/fseek.c b/lib/libc/stdio/fseek.c
index d06e408..b2d98a9 100644
--- a/lib/libc/stdio/fseek.c
+++ b/lib/libc/stdio/fseek.c
@@ -131,8 +131,12 @@ _fseeko(fp, offset, whence, ltest)
*/
if (_ftello(fp, &curoff))
return (-1);
- if ((offset > 0 && curoff > OFF_MAX - offset) ||
- (offset < 0 && curoff < OFF_MIN - offset)) {
+ if (curoff < 0) {
+ /* Unspecified position because of ungetc() at 0 */
+ errno = ESPIPE;
+ return (-1);
+ }
+ if (offset > 0 && curoff > OFF_MAX - offset) {
errno = EOVERFLOW;
return (-1);
}
OpenPOWER on IntegriCloud