Mesa (master): Revert "egl/dri2: Don't dlclose() the driver on dri2_load_driver_common failure"

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 1 16:53:34 UTC 2020


Module: Mesa
Branch: master
Commit: d3c91439713ecf025c7fe97aae3a4829b3f1250b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3c91439713ecf025c7fe97aae3a4829b3f1250b

Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu Mar  5 13:05:36 2020 +0000

Revert "egl/dri2: Don't dlclose() the driver on dri2_load_driver_common failure"

This reverts commit 1b87f4058de84d7a0bb4ead0c4f4b024d4cce8fb.

dlclose() of the handle is perfectly reasonable, a follow-up NULL
assignment is missing.

As-is this causes a leak for nearly every platform, since they call
dri2_load_driver* initially, followed by a second swrast fallback call.

Some platforms even loop through the existing drivers probing.

Revert the commit and add the NULL check.

Fixes: 1b87f4058de ("egl/dri2: Don't dlclose() the driver on dri2_load_driver_common failure")
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Reviewed-by: Adam Jackson <ajax at redhat.com>
Reviewed-by: Eric Engestrom <eric at engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4084>

---

 src/egl/drivers/dri2/egl_dri2.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 0e065acd763..cdaf3a75029 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -822,9 +822,11 @@ dri2_load_driver_common(_EGLDisplay *disp,
    if (!extensions)
       return EGL_FALSE;
 
-   if (!dri2_bind_extensions(dri2_dpy, driver_extensions, extensions, false))
+   if (!dri2_bind_extensions(dri2_dpy, driver_extensions, extensions, false)) {
+      dlclose(dri2_dpy->driver);
+      dri2_dpy->driver = NULL;
       return EGL_FALSE;
-
+   }
    dri2_dpy->driver_extensions = extensions;
 
    dri2_bind_extensions(dri2_dpy, optional_driver_extensions, extensions, true);



More information about the mesa-commit mailing list