diff --git a/.pick_status.json b/.pick_status.json index 4cee6100af8..fbfc20e3b54 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4574,7 +4574,7 @@ "description": "egl: fix memory leak related to _eglRefreshDeviceList()", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "e39d72aec203ee317feb87ba1c8953a99aad2a5c", "notes": null diff --git a/src/egl/main/egldevice.c b/src/egl/main/egldevice.c index c1c421b5050..0426668ca21 100644 --- a/src/egl/main/egldevice.c +++ b/src/egl/main/egldevice.c @@ -300,8 +300,10 @@ _eglRefreshDeviceList(void) num_devs = drmGetDevices2(0, devices, ARRAY_SIZE(devices)); for (int i = 0; i < num_devs; i++) { - if (!(devices[i]->available_nodes & (1 << DRM_NODE_RENDER))) + if (!(devices[i]->available_nodes & (1 << DRM_NODE_RENDER))) { + drmFreeDevice(&devices[i]); continue; + } ret = _eglAddDRMDevice(devices[i], NULL);