Whamcloud - gitweb
resize2fs: fix crash when there is an ea block and no blocks to migrate
authorTheodore Ts'o <tytso@mit.edu>
Wed, 10 Aug 2016 19:49:35 +0000 (15:49 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 10 Aug 2016 20:00:17 +0000 (16:00 -0400)
This fixes a bug introduced in 1.43 by commit fb47b94fffc: "resize2fs:
rewrite extent/dir/ea block checksums when migrating".  If there is an
extended attribute block and there are no blocks that need to migrate,
we will crash.

The bug was caused by a botched De Morgan's transformation.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
resize/resize2fs.c

index 09419ce..8f6d95e 100644 (file)
@@ -1895,7 +1895,7 @@ static errcode_t migrate_ea_block(ext2_resize_t rfs, ext2_ino_t ino,
        errcode_t err = 0;
 
        /* No EA block or no remapping?  Quit early. */
-       if (ext2fs_file_acl_block(rfs->old_fs, inode) == 0 && !rfs->bmap)
+       if (ext2fs_file_acl_block(rfs->old_fs, inode) == 0 || !rfs->bmap)
                return 0;
        new_block = extent_translate(rfs->old_fs, rfs->bmap,
                ext2fs_file_acl_block(rfs->old_fs, inode));