]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: rate - fix the crash in snd_pcm_rate_may_wait_for_avail_min()
authorJaroslav Kysela <perex@perex.cz>
Wed, 9 Nov 2022 07:11:42 +0000 (08:11 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 9 Nov 2022 07:18:06 +0000 (08:18 +0100)
The pcm argument passed to the conversion function in
snd_pcm_plugin_may_wait_for_avail_min_conv() should be
pcm->fast_op_arg.

Test command: arecord -Dplughw:x -r12000 -c2 -fS16_LE -M temp.wav

Fixes: d9dbb57b ("pcm: rate - rewrite the may_wait_for_avail_min callback for the rate plugin")
BugLink: https://lore.kernel.org/alsa-devel/1667793912-18957-1-git-send-email-shengjiu.wang@nxp.com/
Fixes: https://github.com/alsa-project/alsa-lib/issues/282
Reported-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/pcm/pcm_plugin.c

index 6bb90b8b06a9aad323534f5e540ea4321ac705ba..ec64604cfaa6618679032a156a9e2964de9a2ce2 100644 (file)
@@ -622,7 +622,7 @@ int snd_pcm_plugin_may_wait_for_avail_min_conv(
                 * This code is also used by extplug, but extplug does not allow to alter the sampling rate.
                 */
                if (conv)
-                       needed_slave_avail_min = conv(pcm, needed_slave_avail_min);
+                       needed_slave_avail_min = conv(pcm->fast_op_arg, needed_slave_avail_min);
 
                if (slave->avail_min != needed_slave_avail_min) {
                        snd_pcm_sw_params_t *swparams;