diff options
Diffstat (limited to 'channels/chan_alsa.c')
-rw-r--r-- | channels/chan_alsa.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c index c43decb1c..7f54d6cfa 100644 --- a/channels/chan_alsa.c +++ b/channels/chan_alsa.c @@ -483,6 +483,13 @@ static struct ast_frame *alsa_read(struct ast_channel *chan) } else if (r < 0) { ast_log(LOG_ERROR, "Read error: %s\n", snd_strerror(r)); } + + /* Return NULL frame on error */ + if (r < 0) { + ast_mutex_unlock(&alsalock); + return &f; + } + /* Update positions */ readpos += r; left -= r; |