mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
commit 3e85fd614c upstream.
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e255d3c8a8
commit
aec8dc2b5d
|
|
@ -609,7 +609,7 @@ static int snd_sgio2audio_pcm_hw_params(struct snd_pcm_substream *substream,
|
|||
/* alloc virtual 'dma' area */
|
||||
if (runtime->dma_area)
|
||||
vfree(runtime->dma_area);
|
||||
runtime->dma_area = vmalloc(size);
|
||||
runtime->dma_area = vmalloc_user(size);
|
||||
if (runtime->dma_area == NULL)
|
||||
return -ENOMEM;
|
||||
runtime->dma_bytes = size;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ static int snd_pcm_alloc_vmalloc_buffer(struct snd_pcm_substream *subs, size_t s
|
|||
return 0; /* already enough large */
|
||||
vfree(runtime->dma_area);
|
||||
}
|
||||
runtime->dma_area = vmalloc_32(size);
|
||||
runtime->dma_area = vmalloc_32_user(size);
|
||||
if (! runtime->dma_area)
|
||||
return -ENOMEM;
|
||||
runtime->dma_bytes = size;
|
||||
|
|
|
|||
|
|
@ -752,7 +752,7 @@ static int snd_pcm_alloc_vmalloc_buffer(struct snd_pcm_substream *subs, size_t s
|
|||
return 0; /* already large enough */
|
||||
vfree(runtime->dma_area);
|
||||
}
|
||||
runtime->dma_area = vmalloc(size);
|
||||
runtime->dma_area = vmalloc_user(size);
|
||||
if (!runtime->dma_area)
|
||||
return -ENOMEM;
|
||||
runtime->dma_bytes = size;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user