From ef6747e290d0456d140129f28283e0761713da2e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 27 Mar 2013 15:15:33 +0100 Subject: [PATCH] hexdump: don't unconditionally limit the usable address range Signed-off-by: Denys Vlasenko --- libbb/dump.c | 2 +- util-linux/hexdump.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libbb/dump.c b/libbb/dump.c index 7e435643b..566881a78 100644 --- a/libbb/dump.c +++ b/libbb/dump.c @@ -333,7 +333,7 @@ static void do_skip(priv_dumper_t *dumper, const char *fname, int statok) return; } } - if (fseek(stdin, dumper->pub.dump_skip, SEEK_SET)) { + if (fseeko(stdin, dumper->pub.dump_skip, SEEK_SET)) { bb_simple_perror_msg_and_die(fname); } dumper->address += dumper->pub.dump_skip; diff --git a/util-linux/hexdump.c b/util-linux/hexdump.c index 9a312f95c..43fc188bf 100644 --- a/util-linux/hexdump.c +++ b/util-linux/hexdump.c @@ -116,7 +116,12 @@ int hexdump_main(int argc, char **argv) dumper->dump_length = xatoi_positive(optarg); } /* else */ if (ch == 's') { /* compat: -s accepts hex numbers too */ - dumper->dump_skip = xstrtoul_range_sfx(optarg, /*base:*/ 0, /*lo:*/ 0, /*hi:*/ LONG_MAX, suffixes); + dumper->dump_skip = xstrtoul_range_sfx( + optarg, + /*base:*/ 0, + /*lo:*/ 0, /*hi:*/ OFF_T_MAX, + suffixes + ); } /* else */ if (ch == 'v') { dumper->dump_vflag = ALL; -- 2.25.1