[Mesa-stable] [PATCH 1/2] egl/wayland: bail out when drmGetMagic fails
Emil Velikov
emil.l.velikov at gmail.com
Tue Nov 27 11:39:41 UTC 2018
From: Emil Velikov <emil.velikov at collabora.com>
Currently as the function fails, we pass uninitialized data to the
authentication function. Stop doing that and print an warning when
the function fails.
v2: Plug memory leak in error path (Eric)
Cc: mesa-stable at lists.freedesktop.org
Cc: Tapani Pälli <tapani.palli at intel.com> (v1)
Cc: Eric Engestrom <eric.engestrom at intel.com>
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli at intel.com> (v1)
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
---
Sending out for posterity.
---
src/egl/drivers/dri2/platform_wayland.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 8122c811288..b05f5363163 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -1133,7 +1133,14 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device)
if (drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER) {
dri2_dpy->authenticated = true;
} else {
- drmGetMagic(dri2_dpy->fd, &magic);
+ if (drmGetMagic(dri2_dpy->fd, &magic)) {
+ close(dri2_dpy->fd);
+ dri2_dpy->fd = -1;
+ free(dri2_dpy->device_name);
+ dri2_dpy->device_name = NULL:
+ _eglLog(_EGL_WARNING, "wayland-egl: drmGetMagic failed");
+ return;
+ }
wl_drm_authenticate(dri2_dpy->wl_drm, magic);
}
}
--
2.19.1
More information about the mesa-stable
mailing list