linux-stable/sound/firewire/tascam
Geert Uytterhoeven 5b984e538b ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
commit 9f65df9c58 upstream.

As snd_fw_async_midi_port.consume_bytes is unsigned int, and
NSEC_PER_SEC is 1000000000L, the second multiplication in

    port->consume_bytes * 8 * NSEC_PER_SEC / 31250

always overflows on 32-bit platforms, truncating the result.  Fix this
by precalculating "NSEC_PER_SEC / 31250", which is an integer constant.

Note that this assumes port->consume_bytes <= 16777.

Fixes: 531f471834 ("ALSA: firewire-lib/firewire-tascam: localize async midi port")
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20210111130251.361335-3-geert+renesas@glider.be
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-19 18:27:33 +01:00
..
amdtp-tascam.c ALSA: firewire-tascam: fix corruption due to spin lock without restoration in SoftIRQ context 2020-01-13 10:41:01 +01:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
tascam-hwdep.c ALSA: firewire-tascam: Add missing annotation for tscm_hwdep_read_locked() 2020-03-11 07:55:38 +01:00
tascam-midi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
tascam-pcm.c ALSA: firewire: Drop superfluous ioctl PCM ops 2019-12-11 07:25:27 +01:00
tascam-proc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
tascam-stream.c ALSA: firewire-lib: postpone to start IR context 2019-10-19 09:18:27 +02:00
tascam-transaction.c ALSA: firewire-tascam: Fix integer overflow in midi_port_work() 2021-01-19 18:27:33 +01:00
tascam.c ALSA; firewire-tascam: exclude Tascam FE-8 from detection 2020-08-23 10:00:34 +02:00
tascam.h ALSA: firewire-tascam: share PCM buffer size for both direction 2019-10-18 04:35:50 +02:00