summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunrui Luo <moonafterrain@outlook.com>2025-11-06 10:49:46 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-12-18 14:03:43 +0100
commit1823e08f76c68b9e1d26f6d5ef831b96f61a62a0 (patch)
treef07d46f80cb10a82e82f5901fd2a87bd817168a0
parent590bd2a7acba27fda5e4e9d623780f977c0e1e14 (diff)
downloadlinux-1823e08f76c68b9e1d26f6d5ef831b96f61a62a0.tar.gz
linux-1823e08f76c68b9e1d26f6d5ef831b96f61a62a0.tar.bz2
linux-1823e08f76c68b9e1d26f6d5ef831b96f61a62a0.zip
ALSA: wavefront: Fix integer overflow in sample size validation
commit 0c4a13ba88594fd4a27292853e736c6b4349823d upstream. The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem Fix by using unsigned comparison to avoid integer overflow. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Cc: stable@vger.kernel.org Signed-off-by: Junrui Luo <moonafterrain@outlook.com> Link: https://patch.msgid.link/SYBPR01MB7881B47789D1B060CE8BF4C3AFC2A@SYBPR01MB7881.ausprd01.prod.outlook.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--sound/isa/wavefront/wavefront_synth.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
index cd5c177943aa..0d78533e1cfd 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -950,9 +950,9 @@ wavefront_send_sample (snd_wavefront_t *dev,
if (header->size) {
dev->freemem = wavefront_freemem (dev);
- if (dev->freemem < (int)header->size) {
+ if (dev->freemem < 0 || dev->freemem < header->size) {
dev_err(dev->card->dev,
- "insufficient memory to load %d byte sample.\n",
+ "insufficient memory to load %u byte sample.\n",
header->size);
return -ENOMEM;
}