* [PATCH] forgotten ->b_data in memcpy() call in ext3/resize.c (oopsable)
@ 2006-04-26 6:26 Al Viro
0 siblings, 0 replies; only message in thread
From: Al Viro @ 2006-04-26 6:26 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, sct
sbi->s_group_desc is an array of pointers to buffer_head. memcpy() of
buffer size from address of buffer_head is a bad idea - it will generate
junk in any case, may oops if buffer_head is close to the end of slab
page and next page is not mapped and isn't what was intended there.
IOW, ->b_data is missing in that call. Fortunately, result doesn't go
into the primary on-disk data structures, so only backup ones get crap
written to them; that had allowed this bug to remain unnoticed until
now.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
fs/ext3/resize.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
e26179ed6fdd952b91a313a275191ae97bcd4d71
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c
index c5ffa85..8aac533 100644
--- a/fs/ext3/resize.c
+++ b/fs/ext3/resize.c
@@ -213,7 +213,7 @@ static int setup_new_group_blocks(struct
goto exit_bh;
}
lock_buffer(bh);
- memcpy(gdb->b_data, sbi->s_group_desc[i], bh->b_size);
+ memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, bh->b_size);
set_buffer_uptodate(gdb);
unlock_buffer(bh);
ext3_journal_dirty_metadata(handle, gdb);
--
1.3.0.g0080f
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2006-04-26 6:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-26 6:26 [PATCH] forgotten ->b_data in memcpy() call in ext3/resize.c (oopsable) Al Viro
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.