Merge branch 'master' into next
[paraslash.git] / alsa_write.c
index dd91cd84f1d5e648a2b1a4f0fa3a7859a7f51093..b6a087a3d6b87353796dff34ac790d6c64f58e4d 100644 (file)
@@ -45,8 +45,8 @@ struct private_alsa_write_data {
         */
        unsigned samplerate;
        /**
-        * the number of channels, also given by command line option or the
-        * decoder of the writer node group
+        * The number of channels, given by command line option or the
+        * decoder of the writer node group.
         */
        unsigned channels;
 };
@@ -211,9 +211,12 @@ static void alsa_close(struct writer_node *wn)
 {
        struct private_alsa_write_data *pad = wn->private_data;
        PARA_INFO_LOG("closing writer node %p\n", wn);
-       snd_pcm_drain(pad->handle);
-       snd_pcm_close(pad->handle);
-       snd_config_update_free_global();
+
+       if (pad->handle) {
+               snd_pcm_drain(pad->handle);
+               snd_pcm_close(pad->handle);
+               snd_config_update_free_global();
+       }
        free(pad);
 }