• Nicolas Boichat's avatar
    ALSA: pcm: Fix snd_pcm_hw_params struct copy in compat mode · 43c54b8c
    Nicolas Boichat authored
    This reverts one hunk of
    commit ef44a1ec ("ALSA: sound/core: use memdup_user()"), which
    replaced a number of kmalloc followed by memcpy with memdup calls.
    
    In this case, we are copying from a struct snd_pcm_hw_params32 to
    a struct snd_pcm_hw_params, but the latter is 4 bytes longer than
    the 32-bit version, so we need to separate kmalloc and copy calls.
    
    This actually leads to an out-of-bounds memory access later on
    in sound/soc/soc-pcm.c:soc_pcm_hw_params() (detected using KASan).
    
    Fixes: ef44a1ec ('ALSA: sound/core: use memdup_user()')
    Signed-off-by: default avatarNicolas Boichat <drinkcat@chromium.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    43c54b8c
pcm_compat.c 16.2 KB