diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2016-08-21 19:56:19 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-08-22 09:27:06 +0200 |
commit | ec913f31a570b57e72e69b4122de70a6b2ef760f (patch) | |
tree | 18d225834816c1dcaea8c5e441a79d97cbb0a17d | |
parent | f5bef0b85e5d1586bb2f34035917d5e4c475cea2 (diff) | |
download | op-kernel-dev-ec913f31a570b57e72e69b4122de70a6b2ef760f.zip op-kernel-dev-ec913f31a570b57e72e69b4122de70a6b2ef760f.tar.gz |
drm: avoid exposing kernel stack in compat_drm_getstats
The C standard does not specify the size of the integer used
to store an enum. Hence in structure drm_stats32_t alignment
bytes may exist.
To avoid exposing bytes from the kernel stack it is
necessary to initialize variable s32 completely.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1471802179-2886-1-git-send-email-xypron.glpk@gmx.de
-rw-r--r-- | drivers/gpu/drm/drm_ioc32.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c index 57676f8..32a489b 100644 --- a/drivers/gpu/drm/drm_ioc32.c +++ b/drivers/gpu/drm/drm_ioc32.c @@ -346,6 +346,7 @@ static int compat_drm_getstats(struct file *file, unsigned int cmd, struct drm_stats __user *stats; int i, err; + memset(&s32, 0, sizeof(drm_stats32_t)); stats = compat_alloc_user_space(sizeof(*stats)); if (!stats) return -EFAULT; |