From e1ca26587b29c415dcd6693ebde91ee09587b81c Mon Sep 17 00:00:00 2001 From: Roel Kluin Date: Mon, 31 Aug 2009 16:32:12 +0200 Subject: [PATCH] --- yaml --- r: 157898 b: refs/heads/master c: cbbb05703da4b205bb17fde555d3b2926d8b3194 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/core/oss/pcm_oss.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 2275244913b1..0b98d9f8ebd6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f1d269bac24e5ddb3a0650aaeb4117aa806b99f1 +refs/heads/master: cbbb05703da4b205bb17fde555d3b2926d8b3194 diff --git a/trunk/sound/core/oss/pcm_oss.c b/trunk/sound/core/oss/pcm_oss.c index dbe406b82591..d35d61b3292c 100644 --- a/trunk/sound/core/oss/pcm_oss.c +++ b/trunk/sound/core/oss/pcm_oss.c @@ -1043,10 +1043,15 @@ static int snd_pcm_oss_change_params(struct snd_pcm_substream *substream) runtime->oss.channels = params_channels(params); runtime->oss.rate = params_rate(params); - runtime->oss.params = 0; - runtime->oss.prepare = 1; vfree(runtime->oss.buffer); runtime->oss.buffer = vmalloc(runtime->oss.period_bytes); + if (!runtime->oss.buffer) { + err = -ENOMEM; + goto failure; + } + + runtime->oss.params = 0; + runtime->oss.prepare = 1; runtime->oss.buffer_used = 0; if (runtime->dma_area) snd_pcm_format_set_silence(runtime->format, runtime->dma_area, bytes_to_samples(runtime, runtime->dma_bytes));