From: Volker Rümelin Date: Thu, 15 May 2025 05:44:24 +0000 (+0200) Subject: audio: fix SIGSEGV in AUD_get_buffer_size_out() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9a70c82c231f745726f40bd190763775d16b1e8;p=thirdparty%2Fqemu.git audio: fix SIGSEGV in AUD_get_buffer_size_out() As far as the emulated audio devices are concerned the pointer returned by AUD_open_out() is an opaque handle. This includes the NULL pointer. In this case, AUD_get_buffer_size_out() should return a sensible buffer size instead of triggering a segmentation fault. All other public AUD_*_out() and audio_*_out() functions handle this case. Reviewed-by: Marc-André Lureau Signed-off-by: Volker Rümelin Message-Id: <20250515054429.7385-2-vr_qemu@t-online.de> (cherry picked from commit 5ddd6c8dc849b4af44bd06840c9133d64e62c27c) Signed-off-by: Michael Tokarev --- diff --git a/audio/audio.c b/audio/audio.c index 065602ce1b9..0caf41fff64 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -894,6 +894,10 @@ size_t AUD_read(SWVoiceIn *sw, void *buf, size_t size) int AUD_get_buffer_size_out(SWVoiceOut *sw) { + if (!sw) { + return 0; + } + return sw->hw->samples * sw->hw->info.bytes_per_frame; }