squashfs: fix warn_on when root inode is corrupted
authorPhillip Lougher <phillip@lougher.demon.co.uk>
Fri, 16 Apr 2010 00:01:36 +0000 (01:01 +0100)
committerPhillip Lougher <phillip@lougher.demon.co.uk>
Sun, 25 Apr 2010 00:49:17 +0000 (01:49 +0100)
Fix warn_on triggered by mounting a fsfuzzer corrupted file system, where
the root inode has been corrupted.

Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
Reported-by: Steve Grubb <sgrubb@redhat.com>
fs/squashfs/super.c

index 3550aec..07ceeb8 100644 (file)
@@ -275,7 +275,8 @@ allocate_root:
 
        err = squashfs_read_inode(root, root_inode);
        if (err) {
-               iget_failed(root);
+               make_bad_inode(root);
+               iput(root);
                goto failed_mount;
        }
        insert_inode_hash(root);