ext2fs_get_device_size: Fix error handling

The previous patch would return EFBIG for any failure called from
ext2fs_get_device_size2().  (I didn't merge this fix with the
preceeding commit to allow merges to happen more easily.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
bitmap-optimize
Theodore Ts'o 2009-01-20 13:37:47 -05:00
parent beab8de477
commit 9f7a1fc936
1 changed files with 6 additions and 5 deletions

View File

@ -278,13 +278,14 @@ errcode_t ext2fs_get_device_size(const char *file, int blocksize,
{
errcode_t retval;
blk64_t blocks;
retval = ext2fs_get_device_size2(file, blocksize, &blocks);
if (!retval && blocks < (1ULL << 32)) {
*retblocks = (blk_t) blocks;
retval = ext2fs_get_device_size2(file, blocksize, &blocks);
if (retval)
return retval;
}
return EFBIG;
if (blocks >= (1ULL << 32))
return EFBIG;
*retblocks = (blk_t) blocks;
return 0;
}
#endif /* WIN32 */