2396 Commits

Author SHA1 Message Date
Erik de Castro Lopo
d9bae19203 Version 1.0.26pre6 2015-04-28 15:30:50 +10:00
Erik de Castro Lopo
95c6970e6d sndfile-interleave: Fix handling of last buffer
Without this patch the longer of the two files being interleaved
could end up truncated.

Patch-from: Jan Stary <hans@stare.cz>
Reported-by: Josef Kucera <kucerjo3@fit.cvut.cz>
2015-04-27 18:28:40 +10:00
Erik de Castro Lopo
a6e50f730b doc/api.html : Document assumptions about string data.
Closes: https://github.com/erikd/libsndfile/issues/67
2015-03-17 19:58:33 +11:00
Erik de Castro Lopo
e4cc9d350a src/(ima|ms)_adpcm.c : Validate block alignment on read. 2015-02-19 13:54:16 +11:00
Erik de Castro Lopo
b708361c01 src/rf64.c : Make parser more robust to malformed files. 2015-02-14 13:21:51 +11:00
Erik de Castro Lopo
e10620bc95 src/(aiff|rf64|w64|wav).c : Exit parser if chunk size > file length. 2015-02-14 12:53:54 +11:00
Erik de Castro Lopo
3f532789b0 src/(rf64|w64|wav).c : Validate parsed channel count. 2015-02-14 12:41:19 +11:00
Erik de Castro Lopo
0542f33fe2 src/caf.c : Fix for big-endian 32 bit systems. 2015-02-12 21:41:19 +11:00
Erik de Castro Lopo
f6cae66853 src/w64.c : Refactor and add sanity checking for chunk sizes. 2015-02-12 14:13:12 +11:00
Erik de Castro Lopo
77cc8dcb9f src/rf64.c : Sanity check size of unknown chunks. 2015-02-12 02:57:56 +11:00
Erik de Castro Lopo
7ffa51c5d9 src/w64.c : Improve handling of truncated files. 2015-02-11 21:07:18 +11:00
Erik de Castro Lopo
01d9eb357e src/ms_adpcm.c : Improve handling of truncated files. 2015-02-11 21:05:56 +11:00
Erik de Castro Lopo
5b2ed83609 src/aiff.c : Validate channel count. 2015-02-10 15:46:55 +11:00
Erik de Castro Lopo
a20f696350 src/ms_adpcm.c : Validate block predictor. 2015-02-10 12:01:51 +11:00
Erik de Castro Lopo
b562efc87e ALAC : Improve input validation and error reporting. 2015-02-09 20:17:51 +11:00
Erik de Castro Lopo
f4d42d73cd src/svx.c : Refactor and bug fix.
* Improve and generalize code.
* Reduce number of variables.
* Increase robustness when parsing mal-formed files.
2015-02-09 19:51:07 +11:00
Erik de Castro Lopo
0f8c22bfa8 src/au.c : Validate channel count. 2015-02-09 18:14:36 +11:00
Erik de Castro Lopo
c49a1374b7 src/voc.c : Fix overlapping memcpy. 2015-02-09 13:48:21 +11:00
Erik de Castro Lopo
d618284573 src/(aiff|wav).c : Add debug log info when huge unknown chunk is found. 2015-02-09 13:48:21 +11:00
Erik de Castro Lopo
fdd7a0af8c ALAC : Collection of validation and bounds checking fixes.
* Validate channel count returned when decoder is initialized.
* Validate frames_per_packet.
* Bounds check numSamples read from bitstream.
* Increase ALAC_BYTE_BUFFER_SIZE.
* Integer sanitizer fixes.
2015-02-08 16:53:18 +11:00
Erik de Castro Lopo
d2a87385c1 src/common.c : Fix a header parsing bug.
When the file header is bigger that SF_HEADER_LEN, the code would seek
instead of reading causing file parse errors.

The current header parsing and writing code *badly* needs a re-write.
2015-02-07 15:45:13 +11:00
Erik de Castro Lopo
2a34a72150 src/caf.c : Handle finding chunk size of < 0. 2015-02-06 12:04:40 +11:00
Erik de Castro Lopo
d68c623d2b src/(aiff|caf|wav).c : Improve debug output when marker == 0. 2015-02-06 09:56:24 +11:00
Erik de Castro Lopo
972967c3d6 Scripts/static-deps-build.mk : Only rebuild if something has changed. 2015-02-06 09:16:18 +11:00
Erik de Castro Lopo
d7de0bac5f src/aiff.c : Minor improvements for parser re-synching. 2015-02-01 12:52:22 +11:00
Erik de Castro Lopo
3a94982e50 Scripts/static-deps-build.mk : Two minor fixes.
* Fix paths to EXTERNAL_LIBS dependences (found using $(pwd)).
* Generate configure script if it does not already exist.
2015-01-30 20:55:46 +11:00
Erik de Castro Lopo
8a41dfe2cb src/(float32|double64).c : Fix potential divide by 0. 2015-01-30 20:55:46 +11:00
Flavio Grossi
be5b47af58 Change default file permissions to respect process' umask.
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
CLoses: https://github.com/erikd/libsndfile/pull/94
2015-01-10 08:26:39 +11:00
Erik de Castro Lopo
dbe14f0003 src/sd2.c : Fix two potential buffer read overflows.
Closes: https://github.com/erikd/libsndfile/issues/93
2014-12-25 19:23:17 +11:00
Erik de Castro Lopo
6abec1b1c1 src/aiff.c : Fix potential undefined behaviour arising from shift.
Closes: https://github.com/erikd/libsndfile/issues/91
2014-12-24 21:07:23 +11:00
Erik de Castro Lopo
725c7dbb95 src/file_io.c : Prevent potential divide-by-zero.
Closes: https://github.com/erikd/libsndfile/issues/92
2014-12-24 21:02:39 +11:00
Erik de Castro Lopo
eea13650b9 tests/ : Fix undefined behaviour warnings. 2014-12-16 13:21:19 +11:00
Erik de Castro Lopo
149f42892b src/ : Fix undefined behaviour warnings. 2014-12-16 13:19:59 +11:00
Erik de Castro Lopo
4c7e1bd99c configure.ac : Add detection of -fsanitizer=undefined.
Both Clang and GCC-4.9 now support the undefined behaviour sanitizer
so detect and enable it when configuring with --enable-sanitizer.

Also improve configure reporting of sanitizer and stack smash
protection.
2014-12-16 13:18:42 +11:00
Erik de Castro Lopo
9410ca5075 src/Makefile.am : Update CLEANFILES. 2014-12-16 10:14:40 +11:00
Erik de Castro Lopo
3ea38f37bc src/wav.c : Handle 'smpl' chunks with loop count of 0.
Closes: https://github.com/erikd/libsndfile/issues/86
2014-12-16 09:36:13 +11:00
Erik de Castro Lopo
77ab90d734 src/wav.c : Fix incorrect warning message on piped files.
Don't log "filelength > 0xffffffff" warning on piped input files
since the length isn't known anyway.

Closes: https://github.com/erikd/libsndfile/issues/88
2014-12-13 09:18:59 +11:00
Erik de Castro Lopo
dd8b6a0a47 src/ogg_vorbis.c : Add support for tracknumber and genre metadata.
Closes: https://github.com/erikd/libsndfile/issues/87
2014-12-12 22:22:46 +11:00
Erik de Castro Lopo
249e526a0f src/ALAC/ : Code improvements.
* Make internal APIs const correct.
* Use mNumSamples field from encoder/decoder state struct
  instead of passing to encode/decode functions.
2014-12-07 16:45:12 +11:00
Erik de Castro Lopo
9f1fbafb56 configure.ac : Require flac >= 1.3.1.
Earlier versions of FLAC had a couple of CVEs.

Also AC_SUBST the HAVE_EXTERNAL_LIBS variable.
2014-12-07 08:21:22 +11:00
Erik de Castro Lopo
47239eb126 Makefile.am : Fix DISTCHECK_CONFIGURE_FLAGS.
The required flag changed from --enable-gcc-werror to --enable-werror
some time ago.
2014-12-06 19:28:24 +11:00
Erik de Castro Lopo
9bbba9e999 src/ALAC : Fix all undefined behaviour warnings.
Found using GCC's undefined behaviour sanitizer.
2014-12-02 20:50:00 +11:00
Erik de Castro Lopo
a5e5b481ca .gitignore : Remove cruft. 2014-12-02 14:13:51 +11:00
Erik de Castro Lopo
de28385758 Scripts/static-deps-build.mk : Split configure and build steps. 2014-12-01 05:50:32 +11:00
Erik de Castro Lopo
3338989875 Scripts/static-deps-build.mk : Use flac 1.3.1.
Also improve wgetting of tarballs.
2014-11-30 16:57:55 +11:00
Erik de Castro Lopo
78c5747d0e src/wav.c : A bunch more fixes.
* Rename variable dword to chunk_size.
* Use %u specifier instead of %d for chunk lengths.
* Fix two more input validation issues that could lead to an infinite
  loop.
2014-11-30 13:36:29 +11:00
Erik de Castro Lopo
a8ab5b375b src/wav_w64.c : Fix heap write overflow.
Heap write could occur if the number of channels is less than the
length of the file's channel map.

Found using the afl (http://lcamtuf.coredump.cx/afl/) fuzzer.
2014-11-30 13:33:06 +11:00
Erik de Castro Lopo
e67d42d558 Fix a bunch of input validation issues.
Using the afl (http://lcamtuf.coredump.cx/afl/) fuzzer found a
number of issues where a malformed file could cause the various
file format parsers to go into an infinite loop:

* WAV : 7 cases, one leading to memory exhaustion
* AIFF : 1 case
* CAF : 2 cases
* MAT4 : 2 cases
2014-11-30 13:32:41 +11:00
Erik de Castro Lopo
a0177b4076 WAV : Avoid divide by zero exception.
Found a couple of instances where a value retrieved from an input
file header was used as the denominator in a division. If the
retrieved value is zero it results on a divide by zero error.

Found using the afl (http://lcamtuf.coredump.cx/afl/) fuzzer.
2014-11-30 11:03:22 +11:00
Erik de Castro Lopo
4de9a5961f tests/floating_point_test.tpl : Tweak target SNR for alac_24.caf. 2014-11-29 06:49:29 +11:00