drm: drm_ioctl() should zero-init extra data
authorRob Clark <rob@ti.com>
Sun, 18 Sep 2011 19:38:15 +0000 (14:38 -0500)
committerDave Airlie <airlied@redhat.com>
Wed, 19 Oct 2011 13:46:45 +0000 (14:46 +0100)
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@ti.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_drv.c

index 93a112d..7a87e08 100644 (file)
@@ -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) {