From 2dff0d6a6a4df2aab6f36212b705489d5af42835 Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen Date: Mon, 19 Feb 2018 16:48:21 +0200 Subject: [PATCH] alsa: add a couple of FIXME comments build_pollfd() isn't likely to fail, but if it does, pa_sink/source_put() will crash on an assertion failure. I haven't seen such crash happening, this is just something that I noticed while studying the state change code. --- src/modules/alsa/alsa-sink.c | 3 +++ src/modules/alsa/alsa-source.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index fe0a21a51..309d726e8 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -1203,6 +1203,9 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse if (u->sink->thread_info.state == PA_SINK_INIT) { if (build_pollfd(u) < 0) + /* FIXME: This will cause an assertion failure in + * pa_sink_put(), because with the current design + * pa_sink_put() is not allowed to fail. */ return -PA_ERR_IO; } diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index b11a03f8d..adaa42cb3 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -1058,6 +1058,9 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off if (u->source->thread_info.state == PA_SOURCE_INIT) { if (build_pollfd(u) < 0) + /* FIXME: This will cause an assertion failure in + * pa_source_put(), because with the current design + * pa_source_put() is not allowed to fail. */ return -PA_ERR_IO; }