[PULL,05/12] audio: prevent SIGSEGV in AUD_get_buffer_size_out
diff mbox series

Message ID 20200207074557.26073-6-kraxel@redhat.com
State New
Headers show
  • [PULL,01/12] audio/oss: fix buffer pos calculation
Related show

Commit Message

Gerd Hoffmann Feb. 7, 2020, 7:45 a.m. UTC
From: Volker RĂ¼melin <vr_qemu@t-online.de>

With audiodev parameter out.mixing-engine=off hw->mix_buf is
NULL. This leads to a segmentation fault in
AUD_get_buffer_size_out. This patch reverts a small part of
dc88e38fa7 "audio: unify input and output mixeng buffer

To reproduce the problem start qemu with
-soundhw adlib -audiodev pa,id=audio0,out.mixing-engine=off

Signed-off-by: Volker RĂ¼melin <vr_qemu@t-online.de>
Message-Id: <20200123074943.6699-4-vr_qemu@t-online.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
 audio/audio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff mbox series

diff --git a/audio/audio.c b/audio/audio.c
index 9cd76a331d7a..12ed318813f4 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -879,9 +879,9 @@  size_t AUD_read(SWVoiceIn *sw, void *buf, size_t size)
-int AUD_get_buffer_size_out (SWVoiceOut *sw)
+int AUD_get_buffer_size_out(SWVoiceOut *sw)
-    return sw->hw->mix_buf->size * sw->hw->info.bytes_per_frame;
+    return sw->hw->samples * sw->hw->info.bytes_per_frame;
 void AUD_set_active_out (SWVoiceOut *sw, int on)