compositor-drm: Fix memory leak in create_output_for_connector
authorDavid Herrmann <dh.herrmann@googlemail.com>
Thu, 8 Dec 2011 16:05:44 +0000 (17:05 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 8 Dec 2011 18:30:05 +0000 (13:30 -0500)
We do not free the encoder structure on failure. Fix that.

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

index 9f76187..1f5e028 100644 (file)
@@ -445,12 +445,15 @@ create_output_for_connector(struct drm_compositor *ec,
        }
        if (i == resources->count_crtcs) {
                fprintf(stderr, "No usable crtc for encoder.\n");
+               drmModeFreeEncoder(encoder);
                return -1;
        }
 
        output = malloc(sizeof *output);
-       if (output == NULL)
+       if (output == NULL) {
+               drmModeFreeEncoder(encoder);
                return -1;
+       }
 
        memset(output, 0, sizeof *output);
        output->base.subpixel = drm_subpixel_to_wayland(connector->subpixel);