OSDN Git Service

e2fsck: free bh when descriptor block checksum fails
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 19 Sep 2014 01:46:10 +0000 (21:46 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 19 Sep 2014 01:46:22 +0000 (21:46 -0400)
Free the buffer head if the journal descriptor block fails checksum
verification.  This has been patched before (see "e2fsck: free bh on
csum verify error in do_one_pass") but apparently the patch was never
committed to jbd2 in the kernel, so when we resync'd the recovery code
with 3.16, the bug came back.  Sigh.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Cc: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
e2fsck/recovery.c

index 3dc7c06..b5ce3b3 100644 (file)
@@ -525,6 +525,7 @@ static int do_one_pass(journal_t *journal,
                            !jbd2_descr_block_csum_verify(journal,
                                                          bh->b_data)) {
                                err = -EIO;
+                               brelse(bh);
                                goto failed;
                        }