| From eb9d84b0ffe39893cb23b0b6712bbe3637fa25fa Mon Sep 17 00:00:00 2001 |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Date: Sun, 24 Apr 2022 19:24:28 +0900 |
| Subject: ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes |
| |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| |
| commit eb9d84b0ffe39893cb23b0b6712bbe3637fa25fa upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/firewire/fireworks/fireworks_hwdep.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/sound/firewire/fireworks/fireworks_hwdep.c |
| +++ b/sound/firewire/fireworks/fireworks_hwdep.c |
| @@ -35,6 +35,7 @@ hwdep_read_resp_buf(struct snd_efw *efw, |
| 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); |
| |