Whamcloud - gitweb
e2image: correct group descriptors size in ext2fs_image_super_read()
authorEmoly Liu <emoly@whamcloud.com>
Fri, 14 Jul 2023 00:59:58 +0000 (10:59 +1000)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 8 Feb 2024 15:47:08 +0000 (10:47 -0500)
In function ext2fs_image_super_read(), the size of block group
descriptors should be (fs->blocksize * fs->desc_blocks), but not
(fs->blocksize * fs->group_desc_count).

Signed-off-by: Emoly Liu <emoly@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Link: https://lore.kernel.org/r/20230714005958.442487-1-dongyangli@ddn.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/ext2fs/imager.c

index 23290a6..16b0977 100644 (file)
@@ -299,7 +299,7 @@ errcode_t ext2fs_image_super_read(ext2_filsys fs, int fd,
        ssize_t         actual, size;
        errcode_t       retval;
 
-       size = (ssize_t)fs->blocksize * (fs->group_desc_count + 1);
+       size = (ssize_t)fs->blocksize * (fs->desc_blocks + 1);
        buf = malloc(size);
        if (!buf)
                return ENOMEM;
@@ -323,7 +323,7 @@ errcode_t ext2fs_image_super_read(ext2_filsys fs, int fd,
        memcpy(fs->super, buf, SUPERBLOCK_SIZE);
 
        memcpy(fs->group_desc, buf + fs->blocksize,
-              (ssize_t)fs->blocksize * fs->group_desc_count);
+              (ssize_t)fs->blocksize * fs->desc_blocks);
 
        retval = 0;