Revert "egl/dri2: Don't dlclose() the driver on dri2_load_driver_common failure"
This reverts commit1b87f4058d
. 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:1b87f4058d
("egl/dri2: Don't dlclose() the driver on dri2_load_driver_common failure") Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4084>
This commit is contained in:

committed by
Emil Velikov

parent
fa5e800e05
commit
d3c9143971
@@ -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);
|
||||
|
Reference in New Issue
Block a user