When in multi GPU case, devices array may have some NULL "hole" in between two devices. So check all array elements and free non-NULL device. Change-Id: Ifc32d240f895059bc4b19138cb81de38d99fb88a Signed-off-by: Qiang Yu <Qiang.Yu at amd.com> --- xf86drm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xf86drm.c b/xf86drm.c index 19001db..32bedeb 100644 --- a/xf86drm.c +++ b/xf86drm.c @@ -2992,8 +2992,9 @@ void drmFreeDevices(drmDevicePtr devices[], int count) if (devices == NULL) return; - for (i = 0; i < count && devices[i] != NULL; i++) - drmFreeDevice(&devices[i]); + for (i = 0; i < count; i++) + if (devices[i]) + drmFreeDevice(&devices[i]); } static int drmProcessPciDevice(drmDevicePtr *device, const char *d_name, -- 1.9.1