Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e216e8a authored by Jaroslav Kysela's avatar Jaroslav Kysela
Browse files

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: default avatarJaroslav Kysela <perex@perex.cz>
parent 79c944ad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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) %