Originally all hardware drivers duplicate the driver_name string from an external source, while for the software rasterizer we've set it to a literal. Follow the example set by hw drivers this way we can free the string at dri2_terminate().
Cc: Chia-I Wu <o...@lunarg.com> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> --- src/egl/drivers/dri2/egl_dri2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index c1497b8..a2dc7ff 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -469,7 +469,11 @@ dri2_load_driver_swrast(_EGLDisplay *disp) struct dri2_egl_display *dri2_dpy = disp->DriverData; const __DRIextension **extensions; - dri2_dpy->driver_name = "swrast"; + /* + * Every hardware driver_name is set using strndup. Doing the same in + * here will allow is to simply free the memory at dri2_terminate(). + */ + dri2_dpy->driver_name = strndup("swrast", sizeof("swrast")); extensions = dri2_open_driver(disp); if (!extensions) @@ -673,6 +677,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 -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev