]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
audiod _close_filters(): Don't segfault if fn is NULL.
[paraslash.git] / audiod.c
index 456813b14a5a64d9b642dedbd261a2bec25285f8..e950dedea157d3b4a6e6202814315a0b813862e8 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -340,8 +340,12 @@ static void close_receiver(int slot_num)
 
 static void writer_cleanup(struct writer_node *wn)
 {
-       struct writer *w = writers + wn->writer_num;
+       struct writer *w;
 
+       if (!wn)
+               return;
+       w = writers + wn->writer_num;
+       PARA_INFO_LOG("closing %s\n", writer_names[wn->writer_num]);
        w->close(wn);
        btr_free_node(wn->btrn);
 }
@@ -372,8 +376,11 @@ static void _close_filters(struct slot_info *s)
                return;
        for (i = 0; i < a->num_filters; i++) {
                struct filter_node *fn = s->fns + i;
-               struct filter *f = filters + fn->filter_num;
+               struct filter *f;
 
+               if (!fn)
+                       continue;
+               f = filters + fn->filter_num;
                f->close(fn);
                btr_free_node(fn->btrn);
        }