The print_e2fsck_message() function can call get_backup_sb() with the
ctx variable set to NULL. In that case, we can't dereference
ctx->filesystem_name; instead, we can get the size of the file system
from the ext2fs_block_count(fs->super).
Addresses-Coverity-Bug: 1596517
Addresses-Coverity-Bug: 1596505
Fixes:
b53ce7848c2e ("e2fsck: don't try backup superblocks beyond...")
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
blk_t this_bpg = bpg ? bpg : blocksize * 8;
blk64_t num_blocks;
- if (ext2fs_get_device_size2(ctx->filesystem_name,
- blocksize,
- &num_blocks) == 0) {
+ if (fs && fs->super) {
+ num_blocks = ext2fs_blocks_count(fs->super);
+ } else if (ctx && ext2fs_get_device_size2(ctx->filesystem_name,
+ blocksize,
+ &num_blocks) == 0) {
limit = num_blocks / this_bpg;
} else {
/* If we can't figure out the device size,