[PATCH] drm: drm_ioctl() should zero-init extra data

Rob Clark rob.clark at linaro.org
Sun Sep 18 12:38:15 PDT 2011


From: Rob Clark <rob at ti.com>

If an older userspace passes in a smaller arg than the current kernel
ioctl arg struct, then extra fields should be initialized to zero
rather than passing random data to the DRM driver.

Signed-off-by: Rob Clark <rob at ti.com>
---
A potential issue that Daniel Vetter spotted.  It isn't currently an
issue, but I thought it would be better to fix now than forget about
it and have problems later.

 drivers/gpu/drm/drm_drv.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 93a112d..7a87e08 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -438,6 +438,8 @@ long drm_ioctl(struct file *filp,
 					goto err_i1;
 				}
 			}
+			if (asize > usize)
+				memset(kdata + usize, 0, asize - usize);
 		}
 
 		if (cmd & IOC_IN) {
-- 
1.7.5.4



More information about the dri-devel mailing list