mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
pulse-server: stream: only remove from list if pending
Only call `spa_list_remove()` in `stream_free()` if the stream is pending. `spa_list_remove()` does not reinitialize the list node, therefore calling `spa_list_remove()` again after the stream has been removed from the pending list will corrupt the pending list of the client.
This commit is contained in:
parent
043934655a
commit
6f412236d5
3 changed files with 8 additions and 3 deletions
|
|
@ -96,7 +96,8 @@ void stream_free(struct stream *stream)
|
|||
|
||||
pw_log_debug("client %p: stream %p channel:%d", client, stream, stream->channel);
|
||||
|
||||
spa_list_remove(&stream->link);
|
||||
if (stream->pending)
|
||||
spa_list_remove(&stream->link);
|
||||
|
||||
if (stream->drain_tag)
|
||||
reply_error(client, -1, stream->drain_tag, -ENOENT);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue