xwayland: Always free reply from xcb_get_property_reply()
authorBryce Harrington <bryce@osg.samsung.com>
Wed, 1 Jul 2015 04:35:43 +0000 (21:35 -0700)
committerBryce Harrington <bryce@osg.samsung.com>
Fri, 10 Jul 2015 08:09:33 +0000 (01:09 -0700)
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
xwayland/selection.c

index 572a0b5..451b915 100644 (file)
@@ -119,8 +119,9 @@ weston_wm_get_incr_chunk(struct weston_wm *wm)
        } else {
                weston_log("transfer complete\n");
                close(wm->data_source_fd);
-               free(reply);
        }
+
+       free(reply);
 }
 
 struct x11_data_source {
@@ -192,8 +193,10 @@ weston_wm_get_selection_targets(struct weston_wm *wm)
        }
 
        source = malloc(sizeof *source);
-       if (source == NULL)
+       if (source == NULL) {
+               free(reply);
                return;
+       }
 
        wl_signal_init(&source->base.destroy_signal);
        source->base.accept = data_source_accept;
@@ -237,12 +240,13 @@ weston_wm_get_selection_data(struct weston_wm *wm)
        if (reply->type == wm->atom.incr) {
                dump_property(wm, wm->atom.wl_selection, reply);
                wm->incr = 1;
-               free(reply);
        } else {
                dump_property(wm, wm->atom.wl_selection, reply);
                wm->incr = 0;
                weston_wm_write_property(wm, reply);
        }
+
+       free(reply);
 }
 
 static void