colord: remove destroy listener on clean-up
authorPekka Paalanen <pekka.paalanen@collabora.com>
Wed, 6 Nov 2019 10:07:23 +0000 (12:07 +0200)
committerDaniel Stone <daniel@fooishbar.org>
Thu, 21 Nov 2019 16:32:55 +0000 (16:32 +0000)
This was forgetting to remove the compositor destroy listener, which would lead
to use-after-free on compositor tear-down especially on cms-colord init failure
paths. Found by inspection.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
compositor/cms-colord.c

index d68e377dbf58e02c6ce712196e3d20481a35c313..57a77f44f8e52072a5db36f70a9b5d57bb067edc 100644 (file)
@@ -466,6 +466,7 @@ colord_module_destroy(struct cms_colord *cms)
        g_free(cms->pnp_ids_data);
        g_hash_table_unref(cms->pnp_ids);
 
+       wl_list_remove(&cms->destroy_listener.link);
        free(cms);
 }