summaryrefslogtreecommitdiff
path: root/libsndfile-1.0.31-deb669ee.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libsndfile-1.0.31-deb669ee.patch')
-rw-r--r--libsndfile-1.0.31-deb669ee.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/libsndfile-1.0.31-deb669ee.patch b/libsndfile-1.0.31-deb669ee.patch
new file mode 100644
index 0000000..06c89b4
--- /dev/null
+++ b/libsndfile-1.0.31-deb669ee.patch
@@ -0,0 +1,21 @@
+diff --git a/src/ms_adpcm.c b/src/ms_adpcm.c
+index 5e8f1a31..a21cb994 100644
+--- a/src/ms_adpcm.c
++++ b/src/ms_adpcm.c
+@@ -128,8 +128,14 @@ wavlike_msadpcm_init (SF_PRIVATE *psf, int blockalign, int samplesperblock)
+ if (psf->file.mode == SFM_WRITE)
+ samplesperblock = 2 + 2 * (blockalign - 7 * psf->sf.channels) / psf->sf.channels ;
+
+- if (blockalign < 7 * psf->sf.channels)
+- { psf_log_printf (psf, "*** Error blockalign (%d) should be > %d.\n", blockalign, 7 * psf->sf.channels) ;
++ /* There's 7 samples per channel in the preamble of each block */
++ if (samplesperblock < 7 * psf->sf.channels)
++ { psf_log_printf (psf, "*** Error samplesperblock (%d) should be >= %d.\n", samplesperblock, 7 * psf->sf.channels) ;
++ return SFE_INTERNAL ;
++ } ;
++
++ if (2 * blockalign < samplesperblock * psf->sf.channels)
++ { psf_log_printf (psf, "*** Error blockalign (%d) should be >= %d.\n", blockalign, samplesperblock * psf->sf.channels / 2) ;
+ return SFE_INTERNAL ;
+ } ;
+