From d2d16476341f2b8dff36c519d8372a071ca627f9 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 28 Jan 2020 15:37:51 +0100 Subject: [PATCH] media-session: fix cleanup of objects Don't free the proxy twice in some cases. --- src/examples/media-session/media-session.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/examples/media-session/media-session.c b/src/examples/media-session/media-session.c index 1496c4e30..8740b2e52 100644 --- a/src/examples/media-session/media-session.c +++ b/src/examples/media-session/media-session.c @@ -237,6 +237,8 @@ int sm_object_destroy(struct sm_object *obj) pw_log_debug(NAME" %p: object %d", obj->session, obj->id); if (obj->proxy) { pw_proxy_destroy(obj->proxy); + if (obj->handle == obj->proxy) + obj->handle = NULL; obj->proxy = NULL; } if (obj->handle) { @@ -521,8 +523,10 @@ static void node_destroy(void *object) spa_list_remove(&node->link); node->device->obj.changed |= SM_DEVICE_CHANGE_MASK_NODES; } - if (node->info) + if (node->info) { pw_node_info_free(node->info); + node->info = NULL; + } } static const struct object_info node_info = {