compositor-drm: Fix memory leak in update_outputs
authorDavid Herrmann <dh.herrmann@googlemail.com>
Thu, 8 Dec 2011 16:05:43 +0000 (17:05 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 8 Dec 2011 18:29:40 +0000 (13:29 -0500)
We need to correctly free every connector we retrieve. We currently loose them
if they are not connected.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
compositor/compositor-drm.c

index 855a811..9f76187 100644 (file)
@@ -609,9 +609,13 @@ update_outputs(struct drm_compositor *ec)
                int connector_id = resources->connectors[i];
 
                connector = drmModeGetConnector(ec->drm.fd, connector_id);
-               if (connector == NULL ||
-                   connector->connection != DRM_MODE_CONNECTED)
+               if (connector == NULL)
+                       continue;
+
+               if (connector->connection != DRM_MODE_CONNECTED) {
+                       drmModeFreeConnector(connector);
                        continue;
+               }
 
                connected |= (1 << connector_id);