ALSA: pcm core - add a safe check to the silence filling function
In situation when appl_ptr is far greater then hw_ptr, the hw_avail value can be greater than buffer_size. Check for this. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
79c944ad13
commit
9e216e8a40
1 changed files with 2 additions and 0 deletions
|
@ -67,6 +67,8 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram
|
|||
} else {
|
||||
if (new_hw_ptr == ULONG_MAX) { /* initialization */
|
||||
snd_pcm_sframes_t avail = snd_pcm_playback_hw_avail(runtime);
|
||||
if (avail > runtime->buffer_size)
|
||||
avail = runtime->buffer_size;
|
||||
runtime->silence_filled = avail > 0 ? avail : 0;
|
||||
runtime->silence_start = (runtime->status->hw_ptr +
|
||||
runtime->silence_filled) %
|
||||
|
|
Loading…
Reference in a new issue