From: Daniel Schürmann Date: Mon, 14 Dec 2020 07:03:04 +0000 (+0100) Subject: Don't crash for alsa_snd_pcm_poll_descriptors fail in another case X-Git-Tag: v19.7.0~83^2~1 X-Git-Url: https://andrewgundersen.net/repos?a=commitdiff_plain;h=8f63b5180830ad3da103597305f4504fa4935148;p=portaudio Don't crash for alsa_snd_pcm_poll_descriptors fail in another case --- 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;