Hi All,
Attached is a patch which fixes some cleanup issues for the drm-based
compositor. Basically, if we fail to allocate space for the crtcs in the
compositor, then we need to free the drm mode resources before exiting
the create_outputs function. We should also free these resources (in the
same create_outputs function) if the compositor output_list is empty.
Cheers,
devilhorns
>From a71519a4e82451a632165f3f910246c238af4ed4 Mon Sep 17 00:00:00 2001
From: Christopher Michael <[email protected]>
Date: Wed, 7 Mar 2012 14:55:21 -0500
Subject: [PATCH] When creating outputs in the drm compositor, if allocating crtcs fails, then free the drm resources. Also, if the base output list is empty, free drm resources
---
src/compositor-drm.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 9796014..67fa500 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -1263,8 +1263,10 @@ create_outputs(struct drm_compositor *ec, int option_connector,
}
ec->crtcs = calloc(resources->count_crtcs, sizeof(uint32_t));
- if (!ec->crtcs)
+ if (!ec->crtcs) {
+ drmModeFreeResources(resources);
return -1;
+ }
ec->num_crtcs = resources->count_crtcs;
memcpy(ec->crtcs, resources->crtcs, sizeof(uint32_t) * ec->num_crtcs);
@@ -1295,6 +1297,7 @@ create_outputs(struct drm_compositor *ec, int option_connector,
if (wl_list_empty(&ec->base.output_list)) {
fprintf(stderr, "No currently active connector found.\n");
+ drmModeFreeResources(resources);
return -1;
}
--
1.7.4.1
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel