From: Theodore Ts'o Date: Wed, 24 Apr 2024 01:37:03 +0000 (-0400) Subject: e2fsck: make sure get_backup_sb() works when ctx is NULL X-Git-Tag: v1.47.1-rc1~31 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=a12302fa683e397a731e679bd1b818c45ad3ff78;p=tools%2Fe2fsprogs.git e2fsck: make sure get_backup_sb() works when ctx is NULL 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 --- diff --git a/e2fsck/util.c b/e2fsck/util.c index 734e45c..b8deb41 100644 --- a/e2fsck/util.c +++ b/e2fsck/util.c @@ -592,9 +592,11 @@ blk64_t get_backup_sb(e2fsck_t ctx, ext2_filsys fs, const char *name, 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,