summaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorXi Wang <xi.wang@gmail.com>2012-11-13 23:12:11 +0100
committerTakashi Iwai <tiwai@suse.de>2012-11-14 08:03:27 +0100
commit9af4e7fedab490fec6e831912859d6be92e9140d (patch)
treece8f13d7939d964dd7739c35af3af2d917cf3290 /sound/core
parentALSA: usb-audio: Add quirk for Focusrite Scarlett 18i6 (diff)
downloadlinux-9af4e7fedab490fec6e831912859d6be92e9140d.tar.xz
linux-9af4e7fedab490fec6e831912859d6be92e9140d.zip
ALSA: core: fix NULL checking in snd_pcm_plug_client_size()
The dereference snd_pcm_plug_stream(plug) should come after the NULL check snd_BUG_ON(!plug). Signed-off-by: Xi Wang <xi.wang@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/oss/pcm_plugin.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/core/oss/pcm_plugin.c b/sound/core/oss/pcm_plugin.c
index 71cc3ddf5c15..f0d7b1566a10 100644
--- a/sound/core/oss/pcm_plugin.c
+++ b/sound/core/oss/pcm_plugin.c
@@ -199,12 +199,13 @@ int snd_pcm_plugin_free(struct snd_pcm_plugin *plugin)
snd_pcm_sframes_t snd_pcm_plug_client_size(struct snd_pcm_substream *plug, snd_pcm_uframes_t drv_frames)
{
struct snd_pcm_plugin *plugin, *plugin_prev, *plugin_next;
- int stream = snd_pcm_plug_stream(plug);
+ int stream;
if (snd_BUG_ON(!plug))
return -ENXIO;
if (drv_frames == 0)
return 0;
+ stream = snd_pcm_plug_stream(plug);
if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
plugin = snd_pcm_plug_last(plug);
while (plugin && drv_frames > 0) {