summaryrefslogtreecommitdiff
path: root/src/od.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2002-01-22 10:44:13 +0000
committerJim Meyering <jim@meyering.net>2002-01-22 10:44:13 +0000
commit437d89a15183a1b2ef66724360bd09a7ef7d9d71 (patch)
tree8a30cbfb40eb4d60adba74d24226132153024f8a /src/od.c
parent2b1c83e4e25e434d4e3ce42369ed8ca71b7d2978 (diff)
downloadcoreutils-437d89a15183a1b2ef66724360bd09a7ef7d9d71.tar.xz
(skip): Use fseeko rather than lseek.
(Also, check for overflow when converting uintmax_t to off_t.)
Diffstat (limited to 'src/od.c')
-rw-r--r--src/od.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/od.c b/src/od.c
index ad73bb252..a08a7a5a2 100644
--- a/src/od.c
+++ b/src/od.c
@@ -1081,7 +1081,10 @@ skip (uintmax_t n_skip)
n_skip -= file_stats.st_size;
else
{
- if (lseek (fileno (in_stream), n_skip, SEEK_CUR) < 0)
+ off_t offset = n_skip;
+ if (offset == n_skip && 0 <= offset
+ ? fseeko (in_stream, offset, SEEK_CUR) != 0
+ : (errno = EOVERFLOW, 1))
{
error (0, errno, "%s", input_filename);
err = 1;