[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

Christopher Michael cpmichael1 at comcast.net
Wed Mar 7 11:55:21 PST 2012


---
 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


--------------030603070106000800060109--


More information about the wayland-devel mailing list