diff options
author | Erik de Castro Lopo <erikd@mega-nerd.com> | 2015-02-19 17:48:14 +1100 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2015-02-19 13:54:16 +1100 |
commit | e4cc9d350ab162374ebe2e88d712dba70e511a3b (patch) | |
tree | 786d2860451de6b51de23b192440d2ee00cdc12a | |
parent | b708361c0136d90ce31735d6e13847e0f55c1b31 (diff) |
-rw-r--r-- | src/ima_adpcm.c | 11 | ||||
-rw-r--r-- | src/ms_adpcm.c | 9 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/ima_adpcm.c b/src/ima_adpcm.c index 61b33b2..dd11b0f 100644 --- a/src/ima_adpcm.c +++ b/src/ima_adpcm.c @@ -1,5 +1,5 @@ /* -** Copyright (C) 1999-2014 Erik de Castro Lopo <erikd@mega-nerd.com> +** Copyright (C) 1999-2015 Erik de Castro Lopo <erikd@mega-nerd.com> ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU Lesser General Public License as published by @@ -200,8 +200,13 @@ ima_reader_init (SF_PRIVATE *psf, int blockalign, int samplesperblock) psf->datalength = (psf->dataend) ? psf->dataend - psf->dataoffset : psf->filelength - psf->dataoffset ; - if (pima->blocksize == 0) - { psf_log_printf (psf, "*** Error : pima->blocksize should not be zero.\n") ; + if (pima->blocksize <= 0) + { psf_log_printf (psf, "*** Error : pima->blocksize should be > 0.\n") ; + return SFE_INTERNAL ; + } ; + + if (pima->samplesperblock <= 0) + { psf_log_printf (psf, "*** Error : pima->samplesperblock should be > 0.\n") ; return SFE_INTERNAL ; } ; diff --git a/src/ms_adpcm.c b/src/ms_adpcm.c index d318ded..2251e53 100644 --- a/src/ms_adpcm.c +++ b/src/ms_adpcm.c @@ -137,6 +137,11 @@ wav_w64_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) ; + return SFE_INTERNAL ; + } ; + pmssize = sizeof (MSADPCM_PRIVATE) + blockalign + 3 * psf->sf.channels * samplesperblock ; if (! (psf->codec_data = calloc (1, pmssize))) @@ -151,8 +156,8 @@ wav_w64_msadpcm_init (SF_PRIVATE *psf, int blockalign, int samplesperblock) pms->blocksize = blockalign ; pms->samplesperblock = samplesperblock ; - if (pms->blocksize == 0) - { psf_log_printf (psf, "*** Error : pms->blocksize should not be zero.\n") ; + if (pms->blocksize <= 0) + { psf_log_printf (psf, "*** Error : pms->blocksize should be > 0.\n") ; return SFE_INTERNAL ; } ; |