From 8f63b5180830ad3da103597305f4504fa4935148 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 14 Dec 2020 08:03:04 +0100 Subject: [PATCH] Don't crash for alsa_snd_pcm_poll_descriptors fail in another case --- src/hostapi/alsa/pa_linux_alsa.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/hostapi/alsa/pa_linux_alsa.c b/src/hostapi/alsa/pa_linux_alsa.c index 0564351..22c30f1 100644 --- a/src/hostapi/alsa/pa_linux_alsa.c +++ b/src/hostapi/alsa/pa_linux_alsa.c @@ -3805,14 +3805,19 @@ static PaError PaAlsaStream_WaitForFrames( PaAlsaStream *self, unsigned long *fr if( pollCapture ) { capturePfds = self->pfds; - PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->capture, capturePfds ) ); + PaError res = PaAlsaStreamComponent_BeginPolling( &self->capture, capturePfds ); + if( res != paNoError) + { + xrun = 1; + goto end; + } totalFds += self->capture.nfds; } if( pollPlayback ) { /* self->pfds is in effect an array of fds; if necessary, index past the capture fds */ playbackPfds = self->pfds + (pollCapture ? self->capture.nfds : 0); - int res = PaAlsaStreamComponent_BeginPolling( &self->playback, playbackPfds ); + PaError res = PaAlsaStreamComponent_BeginPolling( &self->playback, playbackPfds ); if( res != paNoError) { xrun = 1; -- 2.43.0