diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2018-08-02 19:25:16 +0300 |
---|---|---|
committer | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2018-08-28 12:14:13 +0300 |
commit | 9cd72ed153f6615ed826b048e1c344bf4640bd2b (patch) | |
tree | 383ba3b419f2d81853f44167f4d78a641255c03d | |
parent | 7841a51ba055a59160b6b7f6d360f580027bfddd (diff) |
Fix crash when the device string is emptyflounder_5.99.6flounder_5.99.5flounder/5.99.6flounder/5.99.55.99.65.99.5
the stream was being free'ed twice because the async
device_close_cb would also free it
Change-Id: I9d396b92d4c8c967f4f83a54c85600e901c81cbc
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
-rw-r--r-- | module-4a-client.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/module-4a-client.c b/module-4a-client.c index 3e519ca..41885ae 100644 --- a/module-4a-client.c +++ b/module-4a-client.c @@ -266,8 +266,7 @@ static pa_hook_result_t sink_input_put_cb(pa_core *core, pa_log_info("moving sink_input to alsa sink"); pa_sink_input_move_to(i, s, false); } else { - pa_xfree(stream->device_uri); - stream->device_uri = NULL; + pa_log_info("failed to load alsa sink, closing 4A device"); jparams = json_object_new_object(); json_object_object_add(jparams, "action", @@ -275,10 +274,9 @@ static pa_hook_result_t sink_input_put_cb(pa_core *core, m4a_afb_call_async(d->comm, role, jparams, (m4a_afb_done_cb_t) device_close_cb, stream); + return PA_HOOK_CANCEL; } - } - - if (!stream->device_uri) { + } else { pa_log_info("sink_input is not authorized to connect to 4A"); //TODO maybe queue and play this stream when 4A allows it |