From: Theodore Ts'o Date: Tue, 20 Jul 2010 15:36:34 +0000 (-0400) Subject: tst_extents: Fix 64-bit bugs in do_goto_block() X-Git-Tag: v1.42-WIP-0702~93 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92e2d79cfbe67244eff8ded095491cba16e98dcc;p=thirdparty%2Fe2fsprogs.git tst_extents: Fix 64-bit bugs in do_goto_block() Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index 030d73a6a..490dbe87d 100644 --- a/lib/ext2fs/extent.c +++ b/lib/ext2fs/extent.c @@ -1981,8 +1981,8 @@ void do_goto_block(int argc, char **argv) struct ext2fs_extent extent; errcode_t retval; int op = EXT2_EXTENT_NEXT_LEAF; - blk_t blk; - int level = 0; + blk64_t blk; + int level = 0, err; if (common_extent_args_process(argc, argv, 2, 3, "goto_block", "block [level]", 0)) @@ -1991,16 +1991,18 @@ void do_goto_block(int argc, char **argv) if (strtoblk(argv[0], argv[1], &blk)) return; - if (argc == 3) - if (strtoblk(argv[0], argv[2], &level)) + if (argc == 3) { + level = parse_ulong(argv[2], argv[0], "level", &err); + if (err) return; + } retval = extent_goto(current_handle, level, (blk64_t) blk); if (retval) { com_err(argv[0], retval, - "while trying to go to block %u, level %d", - blk, level); + "while trying to go to block %llu, level %d", + (unsigned long long) blk, level); return; }