From: Andre Noll Date: Tue, 12 Jan 2010 00:01:34 +0000 (+0100) Subject: audiod: Fix a bug in try_to_close_slot() for default config. X-Git-Tag: v0.4.2~156 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=f99a902ab25a4f51d803b187e66ddc7ca0eb58a2;hp=a94872914afe2e9cc96bb9f8f931a34fb471bb11 audiod: Fix a bug in try_to_close_slot() for default config. If the default writer is used because no --writer option was given, a->num_writers is zero although we have one (the default) writer. Handle this case correctly to avoid starting the receiver too early. --- diff --git a/audiod.c b/audiod.c index d12b65e5..a11835f2 100644 --- a/audiod.c +++ b/audiod.c @@ -1061,9 +1061,14 @@ static bool try_to_close_slot(int slot_num) for (i = 0; i < a->num_filters; i++) if (s->fns && s->fns[i].task.error != -E_TASK_UNREGISTERED) return false; - for (i = 0; i < a->num_writers; i++) - if (s->wns && s->wns[i].task.error != -E_TASK_UNREGISTERED) + if (a->num_writers > 0) { + for (i = 0; i < a->num_writers; i++) + if (s->wns && s->wns[i].task.error != -E_TASK_UNREGISTERED) + return false; + } else { + if (s->wns && s->wns[0].task.error != -E_TASK_UNREGISTERED) return false; + } PARA_INFO_LOG("closing slot %d\n", slot_num); close_writers(s); _close_filters(s);