From bdcf4ddf35801e73bb4eed985eee0cb084840e23 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Mon, 16 May 2011 01:22:47 +0300 Subject: [PATCH] ao: fix crash after ao init failure (from recent 3a5fd15fa2) If opening an audio output driver using the old API failed the "global_ao" variable was not set back to NULL as it should have been. This caused an assert failure the next time there was an attempt to open such an AO (either due to fallback to another AO after the failure or after moving to another file). Fix. --- libao2/audio_out.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libao2/audio_out.c b/libao2/audio_out.c index 699ae7071b..2ad147d8a5 100644 --- a/libao2/audio_out.c +++ b/libao2/audio_out.c @@ -274,8 +274,10 @@ int old_ao_init(struct ao *ao, char *params) global_ao = ao; ao_subdevice = params ? talloc_strdup(ao, params) : NULL; if (ao->driver->old_functions->init(ao->samplerate, ao->channels, - ao->format, 0) == 0) + ao->format, 0) == 0) { + global_ao = NULL; return -1; + } return 0; }