summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@googlemail.com>2011-12-08 17:05:43 +0100
committerKristian Høgsberg <krh@bitplanet.net>2011-12-08 13:29:40 -0500
commit7551cff986ff8339717652d8eb6cf037b07a502e (patch)
tree2bd2d97d4108f8c2204a4a6ed1b7d661a0fb6c87
parenta3a7162b11b994e0fb10edac900b11d80099da39 (diff)
compositor-drm: Fix memory leak in update_outputs
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>
-rw-r--r--compositor/compositor-drm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/compositor/compositor-drm.c b/compositor/compositor-drm.c
index 855a811..9f76187 100644
--- a/compositor/compositor-drm.c
+++ b/compositor/compositor-drm.c
@@ -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);