diff --git a/src/modules/module-protocol-pulse/client.c b/src/modules/module-protocol-pulse/client.c index 88e76e1e3..e4be4f1b8 100644 --- a/src/modules/module-protocol-pulse/client.c +++ b/src/modules/module-protocol-pulse/client.c @@ -182,6 +182,11 @@ int client_queue_message(struct client *client, struct message *msg) if (msg == NULL) return -EINVAL; + if (client->disconnect) { + res = -ENOTCONN; + goto error; + } + if (msg->length == 0) { res = 0; goto error; @@ -212,6 +217,8 @@ int client_flush_messages(struct client *client) struct impl *impl = client->impl; int res; + spa_assert(!client->disconnect); + while (true) { struct message *m; struct descriptor desc; @@ -269,6 +276,9 @@ int client_queue_subscribe_event(struct client *client, uint32_t mask, uint32_t struct impl *impl = client->impl; struct message *reply, *m, *t; + if (client->disconnect) + return -ENOTCONN; + if (!(client->subscribed & mask)) return 0;