Messages in this thread Patch in this message | | | Date | Tue, 4 Mar 2008 20:11:40 +0100 | From | Jan Kara <> | Subject | [PATCH] vfs: Fix NULL pointer dereference in fsync_buffers_list() |
| |
Fix NULL pointer dereference in fsync_buffers_list() introduced by recent fix of races in private_list handling. Since bh->b_assoc_map has been cleared in __remove_assoc_queue() we should really use original value stored in the 'mapping' variable.
Signed-off-by: Jan Kara <jack@suse.cz> ---
Hmm, somehow testing of private_list handling patch on ext2 never hit the code path with the bug :(. UDF did... Please push to Linus. Thanks.
diff --git a/fs/buffer.c b/fs/buffer.c index 897cd74..ddfdd2c 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -835,7 +835,7 @@ static int fsync_buffers_list(spinlock_t *lock, struct list_head *list) smp_mb(); if (buffer_dirty(bh)) { list_add(&bh->b_assoc_buffers, - &bh->b_assoc_map->private_list); + &mapping->private_list); bh->b_assoc_map = mapping; } spin_unlock(lock);
| |