From 22b1b2a64d56b111968ba270f7b8632811f1507d Mon Sep 17 00:00:00 2001 From: Abramo Bagnara Date: Thu, 13 Apr 2000 21:17:03 +0000 Subject: [PATCH] Fixed return value --- src/pcm/pcm_plugin.c | 6 +++--- src/pcm/plugin/block.c | 2 ++ src/pcm/plugin/stream.c | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pcm/pcm_plugin.c b/src/pcm/pcm_plugin.c index 1cedc2bc..bcc7a206 100644 --- a/src/pcm/pcm_plugin.c +++ b/src/pcm/pcm_plugin.c @@ -524,7 +524,7 @@ static ssize_t snd_pcm_plugin_writev1(snd_pcm_t *pcm, const struct iovec *vector { snd_pcm_plugin_t *plugin, *next; snd_pcm_plugin_voice_t *src_voices, *dst_voices; - size_t samples; + ssize_t samples; ssize_t size; int idx, err; @@ -539,7 +539,7 @@ static ssize_t snd_pcm_plugin_writev1(snd_pcm_t *pcm, const struct iovec *vector return samples; while (plugin) { if ((next = plugin->next) != NULL) { - size_t samples1 = samples; + ssize_t samples1 = samples; if (plugin->dst_samples) samples1 = plugin->dst_samples(plugin, samples); if (next->src_voices) { @@ -617,7 +617,7 @@ static ssize_t snd_pcm_plugin_readv1(snd_pcm_t *pcm, const struct iovec *vector, { snd_pcm_plugin_t *plugin, *next; snd_pcm_plugin_voice_t *src_voices = NULL, *dst_voices; - size_t samples; + ssize_t samples; ssize_t size; int idx, err; diff --git a/src/pcm/plugin/block.c b/src/pcm/plugin/block.c index c0fea45b..e3753f5b 100644 --- a/src/pcm/plugin/block.c +++ b/src/pcm/plugin/block.c @@ -86,6 +86,8 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin, } result = snd_pcm_readv(plugin->handle, vec, count); } + if (result < 0) + return result; return snd_pcm_plugin_dst_size_to_samples(plugin, result); } else { return -EINVAL; diff --git a/src/pcm/plugin/stream.c b/src/pcm/plugin/stream.c index 68c0db87..6ac38a55 100644 --- a/src/pcm/plugin/stream.c +++ b/src/pcm/plugin/stream.c @@ -87,6 +87,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin, } result = snd_pcm_readv(plugin->handle, vec, count); } + if (result < 0) + return result; return snd_pcm_plugin_dst_size_to_samples(plugin, result); } else { return -EINVAL; -- 2.47.1