guix/gnu/packages/patches/audiofile-check-number-of-coefficients.patch
Ludovic Courtès 8515ea12d2
gnu: audiofile: Shorten patch file names.
At least 'audiofile-division-by-zero-BlockCodec-runPull.patch' could end
up not being included in a tarball.

* gnu/packages/patches/audiofile-Check-the-number-of-coefficients.patch:
Rename to...
* gnu/packages/patches/audiofile-check-number-of-coefficients.patch:
... this.
* gnu/packages/patches/audiofile-division-by-zero-BlockCodec-runPull.patch:
Rename to...
* gnu/packages/patches/audiofile-division-by-zero.patch: ....this.
* gnu/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch:
Rename to...
* gnu/packages/patches/audiofile-function-signature.patch: ... this.
* gnu/packages/patches/audiofile-Fix-multiply-overflow-sfconvert.patch:
Rename to....
* gnu/packages/patches/audiofile-multiply-overflow.patch: ... this.
* gnu/packages/patches/audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch:
Rename to...
* gnu/packages/patches/audiofile-overflow-in-MSADPCM.patch: ... this.
* gnu/packages/audio.scm (audiofile)[source]: Adjust accordingly.
* gnu/local.mk (dist_patch_DATA): Likewise.
2020-11-10 17:49:14 +01:00

30 lines
947 B
Diff

From: Antonio Larrosa <larrosa@kde.org>
Date: Mon, 6 Mar 2017 12:51:22 +0100
Subject: Always check the number of coefficients
When building the library with NDEBUG, asserts are eliminated
so it's better to always check that the number of coefficients
is inside the array range.
This fixes the 00191-audiofile-indexoob issue in #41
---
libaudiofile/WAVE.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libaudiofile/WAVE.cpp b/libaudiofile/WAVE.cpp
index 9dd8511..0fc48e8 100644
--- a/libaudiofile/WAVE.cpp
+++ b/libaudiofile/WAVE.cpp
@@ -281,6 +281,12 @@ status WAVEFile::parseFormat(const Tag &id, uint32_t size)
/* numCoefficients should be at least 7. */
assert(numCoefficients >= 7 && numCoefficients <= 255);
+ if (numCoefficients < 7 || numCoefficients > 255)
+ {
+ _af_error(AF_BAD_HEADER,
+ "Bad number of coefficients");
+ return AF_FAIL;
+ }
m_msadpcmNumCoefficients = numCoefficients;