dm ioctl: prevent stack leak in dm ioctl call
authorAdrian Salido <salidoa@google.com>
Thu, 27 Apr 2017 17:32:55 +0000 (10:32 -0700)
committerMike Snitzer <snitzer@redhat.com>
Thu, 27 Apr 2017 17:55:13 +0000 (13:55 -0400)
commit4617f564c06117c7d1b611be49521a4430042287
treef8005a09d0eb6827fd541e1c15d3fca1ff85c065
parent84ff1bcc2e25f1ddf5b350c4fa718ca01fdd88e9
dm ioctl: prevent stack leak in dm ioctl call

When calling a dm ioctl that doesn't process any data
(IOCTL_FLAGS_NO_PARAMS), the contents of the data field in struct
dm_ioctl are left initialized.  Current code is incorrectly extending
the size of data copied back to user, causing the contents of kernel
stack to be leaked to user.  Fix by only copying contents before data
and allow the functions processing the ioctl to override.

Cc: stable@vger.kernel.org
Signed-off-by: Adrian Salido <salidoa@google.com>
Reviewed-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-ioctl.c