Dixi quod…

>If there’s no reaction within the week and the patch
>fixes my crashes, I’m intending to NMU.

The patch indeed fixes my problems. I’ve prepared an NMU,
debdiff attached, and uploaded to DELAYED/7. Please merge.

bye,
//mirabilos
-- 
(gnutls can also be used, but if you are compiling lynx for your own use,
there is no reason to consider using that package)
        -- Thomas E. Dickey on the Lynx mailing list, about OpenSSL
diff -Nru portaudio19-19.6.0/debian/changelog 
portaudio19-19.6.0/debian/changelog
--- portaudio19-19.6.0/debian/changelog 2016-12-25 22:08:34.000000000 +0100
+++ portaudio19-19.6.0/debian/changelog 2020-07-30 16:27:02.000000000 +0200
@@ -1,3 +1,10 @@
+portaudio19 (19.6.0-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Apply crash fix patch (Closes: #944509)
+
+ -- Thorsten Glaser <t...@mirbsd.de>  Thu, 30 Jul 2020 16:27:02 +0200
+
 portaudio19 (19.6.0-1) unstable; urgency=medium
 
   * New upstream release v190600_20161030
diff -Nru portaudio19-19.6.0/debian/patches/944509-crash.patch 
portaudio19-19.6.0/debian/patches/944509-crash.patch
--- portaudio19-19.6.0/debian/patches/944509-crash.patch        1970-01-01 
01:00:00.000000000 +0100
+++ portaudio19-19.6.0/debian/patches/944509-crash.patch        2020-07-30 
16:26:55.000000000 +0200
@@ -0,0 +1,59 @@
+Description: handle EPIPE from alsa_snd_pcm_poll_descriptors
+ was: pa_linux_alsa.c:3636 Assertion failed
+Origin: https://lists.columbia.edu/pipermail/portaudio/2019-July/001888.html
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=944509
+Forwarded: not-needed
+Justification: taken from upstream dev mailing list post
+Author: Sam Mason <assumet...@gmail.com>
+Reviewed-by: Norbert Preining <norb...@preining.info>
+Applied-Upstream: no
+
+--- a/src/hostapi/alsa/pa_linux_alsa.c
++++ b/src/hostapi/alsa/pa_linux_alsa.c
+@@ -3633,12 +3633,18 @@ error:
+ 
+ /** Fill in pollfd objects.
+  */
+-static PaError PaAlsaStreamComponent_BeginPolling( PaAlsaStreamComponent* 
self, struct pollfd* pfds )
++static PaError PaAlsaStreamComponent_BeginPolling( PaAlsaStreamComponent* 
self, struct pollfd* pfds, int *xrunOccurred )
+ {
+     PaError result = paNoError;
+     int ret = alsa_snd_pcm_poll_descriptors( self->pcm, pfds, self->nfds );
+-    (void)ret;  /* Prevent unused variable warning if asserts are turned off 
*/
+-    assert( ret == self->nfds );
++    if( -EPIPE == ret )
++    {
++      *xrunOccurred = 1;
++    }
++    else
++    {
++      assert( ret == self->nfds );
++    }
+ 
+     self->ready = 0;
+ 
+@@ -3799,17 +3805,22 @@ static PaError PaAlsaStream_WaitForFrame
+         if( pollCapture )
+         {
+             capturePfds = self->pfds;
+-            PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->capture, 
capturePfds ) );
++            PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->capture, 
capturePfds, &xrun ) );
+             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);
+-            PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->playback, 
playbackPfds ) );
++            PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->playback, 
playbackPfds, &xrun ) );
+             totalFds += self->playback.nfds;
+         }
+ 
++        if ( xrun )
++        {
++          break;
++        }
++
+ #ifdef PTHREAD_CANCELED
+         if( self->callbackMode )
+         {
diff -Nru portaudio19-19.6.0/debian/patches/series 
portaudio19-19.6.0/debian/patches/series
--- portaudio19-19.6.0/debian/patches/series    2016-12-25 21:37:53.000000000 
+0100
+++ portaudio19-19.6.0/debian/patches/series    2020-07-30 16:26:50.000000000 
+0200
@@ -1 +1,2 @@
 audacity-portmixer.patch
+944509-crash.patch

Reply via email to