]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: hw: fix minor bug in sw_params ioctl
authorDan Cross <crossd@gmail.com>
Wed, 14 Jun 2023 21:09:10 +0000 (21:09 +0000)
committerJaroslav Kysela <perex@perex.cz>
Thu, 15 Jun 2023 05:51:11 +0000 (07:51 +0200)
Commit 2115cdb added a new call to the `SNDRV_PCM_IOCTL_SW_PARAMS`
ioctl on line 675 of src/pcm/pcm_hw.c, but passed the `sw_params`
argument by value; this should be passed by pointer.

I ran across this in the context of the direwolf software modem
for amateur radio; debugging details are in
https://groups.io/g/direwolf/message/8286

Fixes: https://github.com/alsa-project/alsa-lib/pull/330
Signed-off-by: Dan Cross <cross@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/pcm/pcm_hw.c

index b468a0713a18f86f77dc8e8460fdec5b6ac1664c..f488023a14a814041aea8d4768f70b66bbfeb4fc 100644 (file)
@@ -672,7 +672,7 @@ static int snd_pcm_hw_prepare(snd_pcm_t *pcm)
 
        if (hw->prepare_reset_sw_params) {
                snd_pcm_sw_params_current_no_lock(pcm, &sw_params);
-               if (ioctl(hw->fd, SNDRV_PCM_IOCTL_SW_PARAMS, sw_params) < 0) {
+               if (ioctl(hw->fd, SNDRV_PCM_IOCTL_SW_PARAMS, &sw_params) < 0) {
                        err = -errno;
                        SYSMSG("SNDRV_PCM_IOCTL_SW_PARAMS failed (%i)", err);
                        return err;