[PATCH weston] compositor-x11: Always free output_mode on error.

Scott Moreau oreaus at gmail.com
Mon Aug 6 00:27:06 PDT 2012


---
 src/compositor-x11.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index e135143..0caa8dd 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -1183,29 +1183,28 @@ output_section_done(void *data)
 	if (!output || !output_name || !output_mode) {
 		free(output_name);
 		output_name = NULL;
-		free(output_mode);
-		output_mode = NULL;
-		return;
+		goto err_free;
 	}
 
 	output->name = output_name;
 
 	if (output_name[0] != 'X') {
 		x11_free_configured_output(output);
-		return;
+		goto err_free;
 	}
 
 	if (sscanf(output_mode, "%dx%d", &output->width, &output->height) != 2) {
 		weston_log("Invalid mode \"%s\" for output %s\n",
 						output_mode, output_name);
 		x11_free_configured_output(output);
-		return;
+		goto err_free;
 	}
 
+	wl_list_insert(configured_output_list.prev, &output->link);
+
+err_free:
 	free(output_mode);
 	output_mode = NULL;
-
-	wl_list_insert(configured_output_list.prev, &output->link);
 }
 
 WL_EXPORT struct weston_compositor *
-- 
1.7.11.2



More information about the wayland-devel mailing list