Some of the error conditions in drmGetDevice() can lead to us calling closedir(NULL) or leaking memory. Fix these conditions the same way we did for drmGetDevices() in commit: commit 8c4a1cbd98bd8d185d489395f33302a17db643a9 Author: Matt Roper <matthew.d.roper@xxxxxxxxx> Date: Wed Sep 30 09:30:51 2015 -0700 xf86drm: Fix error handling for drmGetDevices() Cc: Emil Velikov <emil.l.velikov@xxxxxxxxx> Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx> --- xf86drm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xf86drm.c b/xf86drm.c index a29db42..951edbb 100644 --- a/xf86drm.c +++ b/xf86drm.c @@ -3108,7 +3108,7 @@ int drmGetDevice(int fd, drmDevicePtr *device) sysdir = opendir(DRM_DIR_NAME); if (!sysdir) { ret = -errno; - goto close_sysdir; + goto free_locals; } i = 0; @@ -3165,16 +3165,16 @@ int drmGetDevice(int fd, drmDevicePtr *device) for (i = 1; i < node_count && local_devices[i]; i++) drmFreeDevice(&local_devices[i]); - free(local_devices); closedir(sysdir); + free(local_devices); return 0; free_devices: drmFreeDevices(local_devices, i); - free(local_devices); - -close_sysdir: closedir(sysdir); + +free_locals: + free(local_devices); return ret; } -- 2.1.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel