35 lines
1.0 KiB
Diff
35 lines
1.0 KiB
Diff
From ad8ecfbdd9ff184b60600a115247a6aa947d0215 Mon Sep 17 00:00:00 2001
|
|
From: Helmut Grohne <helmut@subdivi.de>
|
|
Date: Sat, 17 May 2025 22:10:00 +0200
|
|
Subject: [PATCH] voc: word width should never be 0 to avoid division by zero
|
|
|
|
Bug: https://sourceforge.net/p/sox/bugs/351/
|
|
Bug-Debian: https://bugs.debian.org/1010374
|
|
|
|
This patch fixes both CVE-2021-3643 and CVE-2021-23210.
|
|
|
|
Upstream: https://sourceforge.net/p/sox/bugs/351/
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
---
|
|
src/voc.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/src/voc.c b/src/voc.c
|
|
index a75639e9..0ca07f94 100644
|
|
--- a/src/voc.c
|
|
+++ b/src/voc.c
|
|
@@ -625,6 +625,10 @@ static int getblock(sox_format_t * ft)
|
|
v->rate = new_rate_32;
|
|
ft->signal.rate = new_rate_32;
|
|
lsx_readb(ft, &uc);
|
|
+ if (uc <= 1) {
|
|
+ lsx_fail_errno(ft, SOX_EFMT, "2 bits per word required");
|
|
+ return (SOX_EOF);
|
|
+ }
|
|
v->size = uc;
|
|
lsx_readb(ft, &uc);
|
|
if (v->channels != -1 && uc != v->channels) {
|
|
--
|
|
2.49.0
|
|
|