]> www.infradead.org Git - users/hch/xfs.git/commitdiff
ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 24 Apr 2022 10:24:28 +0000 (19:24 +0900)
committerTakashi Iwai <tiwai@suse.de>
Mon, 25 Apr 2022 06:03:49 +0000 (08:03 +0200)
ALSA fireworks driver has a bug in its initial state to return count
shorter than expected by 4 bytes to userspace applications when handling
response frame for Echo Audio Fireworks transaction. It's due to missing
addition of the size for the type of event in ALSA firewire stack.

Fixes: 555e8a8f7f14 ("ALSA: fireworks: Add command/response functionality into hwdep interface")
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20220424102428.21109-1-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/fireworks/fireworks_hwdep.c

index 626c0c34b0b668f9c0bc6b8b8ea635e8f57f86f1..3a53914277d357362d06a72cdf26b1d7589705ea 100644 (file)
@@ -34,6 +34,7 @@ hwdep_read_resp_buf(struct snd_efw *efw, char __user *buf, long remained,
        type = SNDRV_FIREWIRE_EVENT_EFW_RESPONSE;
        if (copy_to_user(buf, &type, sizeof(type)))
                return -EFAULT;
+       count += sizeof(type);
        remained -= sizeof(type);
        buf += sizeof(type);