cluster: RHEL57 - fsck.gfs2: segfault in pass1b
Bob Peterson
rpeterso at fedoraproject.org
Tue Feb 22 22:49:19 UTC 2011
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=b9306e19ba3f346326befd933c8ecdd9bc8973bf
Commit: b9306e19ba3f346326befd933c8ecdd9bc8973bf
Parent: 415fc5f19db6780c76dfc00f680a9617dacd7b31
Author: Bob Peterson <rpeterso at redhat.com>
AuthorDate: Tue Feb 22 16:40:37 2011 -0600
Committer: Bob Peterson <rpeterso at redhat.com>
CommitterDate: Tue Feb 22 16:40:37 2011 -0600
fsck.gfs2: segfault in pass1b
The problem occurred when there were duplicate block
references in a dinode but all references in the duplicate
list are eventually deleted due to other corruption.
The fix is an additional check whether the list is empty.
rhbz#679076
---
gfs2/fsck/pass1b.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gfs2/fsck/pass1b.c b/gfs2/fsck/pass1b.c
index a0c5c88..9abc8c1 100644
--- a/gfs2/fsck/pass1b.c
+++ b/gfs2/fsck/pass1b.c
@@ -558,7 +558,7 @@ static int handle_dup_blk(struct gfs2_sbd *sbp, struct duptree *b)
last_reference = clear_a_reference(sbp, b, &b->ref_inode_list,
&dh, 0);
- if (last_reference) {
+ if (last_reference && !osi_list_empty(&b->ref_inode_list)) {
uint8_t q;
/* If we're down to a single reference (and not all references
More information about the cluster-commits
mailing list