From: Dan Carpenter Date: Tue, 24 Sep 2013 22:27:45 +0000 (-0700) Subject: cciss: fix info leak in cciss_ioctl32_passthru() X-Git-Tag: v3.0.100~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67ea0764ff204966d8f45b35dd26e939e2377b5a;p=thirdparty%2Fkernel%2Fstable.git cciss: fix info leak in cciss_ioctl32_passthru() commit 58f09e00ae095e46ef9edfcf3a5fd9ccdfad065e upstream. The arg64 struct has a hole after ->buf_size which isn't cleared. Or if any of the calls to copy_from_user() fail then that would cause an information leak as well. This was assigned CVE-2013-2147. Signed-off-by: Dan Carpenter Acked-by: Mike Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 1dab802d82b9d..9ee7fe7f04791 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -1179,6 +1179,7 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode, int err; u32 cp; + memset(&arg64, 0, sizeof(arg64)); err = 0; err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info,