[PATCH] forgotten ->b_data in memcpy() call in ext3/resize.c (oopsable)

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>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Al Viro and committed by Linus Torvalds de0bb97a c82ffb07

+1 -1
+1 -1
fs/ext3/resize.c
··· 213 213 goto exit_bh; 214 214 } 215 215 lock_buffer(bh); 216 - memcpy(gdb->b_data, sbi->s_group_desc[i], bh->b_size); 216 + memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, bh->b_size); 217 217 set_buffer_uptodate(gdb); 218 218 unlock_buffer(bh); 219 219 ext3_journal_dirty_metadata(handle, gdb);