Whamcloud - gitweb
e2fsck: don't try to stop mmp if there is no superblock set up
authorEric Sandeen <sandeen@redhat.com>
Mon, 9 Sep 2013 14:33:20 +0000 (10:33 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 9 Sep 2013 14:33:31 +0000 (10:33 -0400)
Under some failure cases, we can get to fatal_error()
without even having a superblock set up.  In that case,
ext2fs_mmp_stop() will segfault when it tries to dereference
fs->super.

Check for the existence of a superblock before we go
down the ext2fs_mmp_stop() path to avoid this problem.

Reported-by: Hubert Kario <hkario@redhat.com>
Addresses-Red-Hat-Bugzilla: #997972
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
e2fsck/util.c

index 2b7d2ff..647e571 100644 (file)
@@ -55,7 +55,7 @@ void fatal_error(e2fsck_t ctx, const char *msg)
                fprintf (stderr, "e2fsck: %s\n", msg);
        if (!fs)
                goto out;
-       if (fs->io) {
+       if (fs->io && fs->super) {
                ext2fs_mmp_stop(ctx->fs);
                if (ctx->fs->io->magic == EXT2_ET_MAGIC_IO_CHANNEL)
                        io_channel_flush(ctx->fs->io);