Lubomir Rintel 811cb8
If stream connection failes, don't assume that stream is connected upon closing.
Lubomir Rintel 811cb8
Lubomir Rintel 811cb8
diff -urp alsa-plugins-1.0.16.orig/pulse/pcm_pulse.c alsa-plugins-1.0.16/pulse/pcm_pulse.c
Lubomir Rintel 811cb8
--- alsa-plugins-1.0.16.orig/pulse/pcm_pulse.c	2008-02-05 10:25:00.000000000 +0100
Lubomir Rintel 811cb8
+++ alsa-plugins-1.0.16/pulse/pcm_pulse.c	2008-03-08 14:33:43.000000000 +0100
Lubomir Rintel 811cb8
@@ -112,12 +112,14 @@ static int pulse_stop(snd_pcm_ioplug_t *
Lubomir Rintel 811cb8
 
Lubomir Rintel 811cb8
     pa_threaded_mainloop_lock(pcm->p->mainloop);
Lubomir Rintel 811cb8
 
Lubomir Rintel 811cb8
-    assert(pcm->stream);
Lubomir Rintel 811cb8
-
Lubomir Rintel 811cb8
     err = pulse_check_connection(pcm->p);
Lubomir Rintel 811cb8
     if (err < 0)
Lubomir Rintel 811cb8
         goto finish;
Lubomir Rintel 811cb8
 
Lubomir Rintel 811cb8
+    /* If stream connection fails, this gets called anyway */
Lubomir Rintel 811cb8
+    if (pcm->stream == NULL)
Lubomir Rintel 811cb8
+        goto finish;
Lubomir Rintel 811cb8
+
Lubomir Rintel 811cb8
     o = pa_stream_flush(pcm->stream, pulse_stream_success_cb, pcm->p);
Lubomir Rintel 811cb8
     assert(o);
Lubomir Rintel 811cb8