]> git.baikalelectronics.ru Git - kernel.git/commit
md/raid10: fix problem with on-stack allocation of r10bio structure.
authorNeilBrown <neilb@suse.de>
Fri, 17 Aug 2012 23:51:42 +0000 (09:51 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 17 Aug 2012 23:51:42 +0000 (09:51 +1000)
commitf0be8eb7486d2d00e52000090096a2e4f3ec1ac6
tree85e2824b053d7ade3ee64a98c0c5a535a9af013f
parente3abe9125a012ac126b794d4707caabd3f563408
md/raid10: fix problem with on-stack allocation of r10bio structure.

A 'struct r10bio' has an array of per-copy information at the end.
This array is declared with size [0] and r10bio_pool_alloc allocates
enough extra space to store the per-copy information depending on the
number of copies needed.

So declaring a 'struct r10bio on the stack isn't going to work.  It
won't allocate enough space, and memory corruption will ensue.

So in the two places where this is done, declare a sufficiently large
structure and use that instead.

The two call-sites of this bug were introduced in 3.4 and 3.5
so this is suitable for both those kernels.  The patch will have to
be modified for 3.4 as it only has one bug.

Cc: stable@vger.kernel.org
Reported-by: Ivan Vasilyev <ivan.vasilyev@gmail.com>
Tested-by: Ivan Vasilyev <ivan.vasilyev@gmail.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid10.c
drivers/md/raid10.h