summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers/dri2/egl_dri2.c
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2014-06-02 12:26:17 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2014-06-09 22:56:00 +0100
commit5cb1cad0aef8d1c426207c955996278290e19e60 (patch)
tree9d977e87d776e61fa8ef84aa880c1db5b5536d90 /src/egl/drivers/dri2/egl_dri2.c
parentc153b1f39b60f7a2ba59262b12b4597cbfbf36ca (diff)
downloadexternal_mesa3d-5cb1cad0aef8d1c426207c955996278290e19e60.zip
external_mesa3d-5cb1cad0aef8d1c426207c955996278290e19e60.tar.gz
external_mesa3d-5cb1cad0aef8d1c426207c955996278290e19e60.tar.bz2
egl/dri2: do not leak dri2_dpy->driver_name
Originally all hardware drivers duplicate the driver_name string from an external source, while for the software rasterizer we set it to "swrast". Follow the example set by hw drivers this way we can free the string at dri2_terminate(). v2: Use strdup over strndup. Suggested by Ilia Mirkin. v3: Handle platform_drm in a similar manner. Cleanup swrast driver_name in error path. Cc: Chia-I Wu <olv@lunarg.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Diffstat (limited to 'src/egl/drivers/dri2/egl_dri2.c')
-rw-r--r--src/egl/drivers/dri2/egl_dri2.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index c1497b8..eb6abfd 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -469,9 +469,7 @@ dri2_load_driver_swrast(_EGLDisplay *disp)
struct dri2_egl_display *dri2_dpy = disp->DriverData;
const __DRIextension **extensions;
- dri2_dpy->driver_name = "swrast";
extensions = dri2_open_driver(disp);
-
if (!extensions)
return EGL_FALSE;
@@ -673,6 +671,7 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
if (dri2_dpy->driver)
dlclose(dri2_dpy->driver);
free(dri2_dpy->device_name);
+ free(dri2_dpy->driver_name);
switch (disp->Platform) {
#ifdef HAVE_X11_PLATFORM