ALSA: pcm: signedness bug in snd_pcm_plug_alloc()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 27 Aug 2018 09:21:45 +0000 (12:21 +0300)
committerTakashi Iwai <tiwai@suse.de>
Mon, 27 Aug 2018 09:28:40 +0000 (11:28 +0200)
The "frames" variable is unsigned so the error handling doesn't work
properly.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/oss/pcm_plugin.c

index 0391cb1..141c5f3 100644 (file)
@@ -111,7 +111,7 @@ int snd_pcm_plug_alloc(struct snd_pcm_substream *plug, snd_pcm_uframes_t frames)
                while (plugin->next) {
                        if (plugin->dst_frames)
                                frames = plugin->dst_frames(plugin, frames);
-                       if (snd_BUG_ON(frames <= 0))
+                       if (snd_BUG_ON((snd_pcm_sframes_t)frames <= 0))
                                return -ENXIO;
                        plugin = plugin->next;
                        err = snd_pcm_plugin_alloc(plugin, frames);
@@ -123,7 +123,7 @@ int snd_pcm_plug_alloc(struct snd_pcm_substream *plug, snd_pcm_uframes_t frames)
                while (plugin->prev) {
                        if (plugin->src_frames)
                                frames = plugin->src_frames(plugin, frames);
-                       if (snd_BUG_ON(frames <= 0))
+                       if (snd_BUG_ON((snd_pcm_sframes_t)frames <= 0))
                                return -ENXIO;
                        plugin = plugin->prev;
                        err = snd_pcm_plugin_alloc(plugin, frames);