From: Jaroslav Kysela Date: Sat, 24 Nov 2001 11:27:24 +0000 (+0000) Subject: Fixed double initialization in prepare X-Git-Tag: v1.0.3~580 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=23348526efe0723e58e6950b2bff006705971188;p=alsa-lib.git Fixed double initialization in prepare --- diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c index 3ea7dde9..2fa4170a 100644 --- a/src/pcm/pcm_share.c +++ b/src/pcm/pcm_share.c @@ -813,6 +813,17 @@ static int snd_pcm_share_prepare(snd_pcm_t *pcm) snd_pcm_share_slave_t *slave = share->slave; int err = 0; Pthread_mutex_lock(&slave->mutex); + switch (share->state) { + case SND_PCM_STATE_OPEN: + err = -EBADFD; + goto _end; + case SND_PCM_STATE_RUNNING: + err = -EBUSY; + goto _end; + case SND_PCM_STATE_PREPARED: + err = 0; + goto _end; + } if (slave->prepared_count == 0) { err = snd_pcm_prepare(slave->pcm); if (err < 0)