[alsa-devel] [PATCH] pcm: dshare: Fix overflow when slave_hw_ptr rolls over boundary

Takashi Iwai tiwai at suse.de
Tue Feb 12 14:38:27 CET 2019


On Mon, 11 Feb 2019 20:51:26 +0100,
Brendan Shanks wrote:
> 
> In snd_pcm_dshare_sync_area() when 'slave_hw_ptr' rolls over
> 'slave_boundary', the wrong variable is checked ('dshare->slave_hw_ptr' vs
> the local 'slave_hw_ptr'). In some cases, this results in 'slave_hw_ptr'
> not rolling over correctly. 'slave_size' and 'size' are then much too
> large, and the for loop blocks for several minutes copying samples.
> 
> This was likely only triggered on 32-bit systems, since the PCM boundary
> is computed based on LONG_MAX and is much larger on 64-bit systems.
> 
> This same change was made to pcm_dmix in commit
> 6c7f60f7a982fdba828e4530a9d7aa0aa2b704ae ("Fix boundary overlap”) from
> June 2005.
> 
> Signed-off-by: Brendan Shanks <brendan.shanks at teradek.com>

Thanks, applied now.


Takashi


More information about the Alsa-devel mailing list