Commit Graph

114 Commits

Author SHA1 Message Date
Sean Barrett
58b2e1490d Merge branch 'fix_alloca' of https://github.com/Clownacy/stb into working 2020-07-13 03:33:18 -07:00
Sean Barrett
fb1cea02f8 tweak PR 2020-07-13 03:06:50 -07:00
Sean Barrett
add7adc3ea Merge branch 'patch-1' of https://github.com/vickit144/stb into working 2020-07-13 03:05:44 -07:00
Sean Barrett
6f7420a825 add credits for last few PR merges 2020-07-13 02:59:10 -07:00
Clownacy
d8df5e9974 Add myself to the list of contributors
The pull-request template says to do so.
2020-04-24 18:46:28 +01:00
Clownacy
47a3c4f5b5 stb_vorbis.c - Detect __NEWLIB__ for alloca.h
This is needed for `stb_vorbis.c` to compile for the Wii U using
devkitPro.

This should theoretically also fix compilation for the Nintendo
Switch, 3DS, and Wii (with devkitPro, that is) as they all also use
Newlib.

Newlib is also used by Cygwin:
https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/alloca.h;h=5d36318914282280b353aed457e1b1f64947b584;hb=HEAD

And the Google Native Client:
https://chromium.googlesource.com/native_client/nacl-newlib/+/refs/heads/master/newlib/libc/include/alloca.h

As you can see from these links, these both provide `alloca.h` as
well, so it appears to be a safe guarantee that `alloca.h` is
available on Newlib.
2020-04-24 18:34:59 +01:00
wph612
2e78eb603b
Added debugging check on line 1604
I added the code assert(f->valid_bits >= n);  instead of removing if (f->valid_bits < 0) return 0; to improve code with checking and debugging instead.
2020-03-24 20:49:40 -04:00
wph612
fcd0a0bfaa
Remove if (f->valid_bits < 0) return 0; on line 1603
I propose to remove this line because  f->valid_bits will never be less than zero since, in the while loop, you're adding 8 to it. Therefore, it will always evaluate to false. This is to help remove redundant code.
2020-03-24 19:47:18 -04:00
David Reid
1d35dc8609 stb_vorbis: Fix macro redefinition warning on MinGW. 2020-02-15 07:23:22 +10:00
Sean Barrett
37b9b20fde update version numbers 2020-02-05 03:19:08 -08:00
Marco Lizza
41a6bb58d1 Other (pedantic) warnings for possible uninitialized variables. 2020-02-04 17:03:48 +01:00
Marco Lizza
43c6bd4e0e Fixing (pedantic) cast warnings. 2020-02-04 17:03:23 +01:00
Sean Barrett
2bb4a0accd Fix trailing whitespace 2020-02-02 11:30:27 -08:00
Sean Barrett
7a69424f15 update version numbers 2020-02-02 11:26:50 -08:00
Sean Barrett
d79349d0b7 stb_vorbis: update credits 2020-02-02 10:54:29 -08:00
Sean Barrett
95ce252305 Merge branch 'OggComment' of https://github.com/audinowho/stb into work2 2020-02-02 10:51:14 -08:00
Sean Barrett
aad77ec74e Merge branch 'issue-799' of https://github.com/pwaller/stb into work2 2020-02-02 10:04:39 -08:00
Sean Barrett
4067b6d28b Merge branch 'kc/fix-coverity-issues-1' of https://github.com/krcroft/stb into work2 2020-02-02 10:02:25 -08:00
Peter Waller
2f18c96cfb Pad allocations in setup_{,temp_}malloc for 8-byte alignment
4-byte alignment triggered warnings with clang and -fsanitize=undefined.

Fix #799.

Signed-off-by: Peter Waller <p@pwaller.net>
2020-01-02 10:48:47 +00:00
Kevin Croft
58e0c4438d
STB Vorbis: eliminate inaccessible branch
The eliminated code removes the (ch == 1) branch, which is scoped
within this if condition: `if (rtype == 2 && ch != 1)`, therefore
the (ch == 1) branch will never be taken.

Fixes #842.
2019-12-04 22:09:14 -08:00
Kevin Croft
3b491aa07c
STB Vorbis: prevent division by zero in decode_resign if ch == 0
In the call to decode_residue:
  decode_residue(f, residue_buffers, ch, n2, r, do_not_decode);

The channel count is previously intialized as zero and incremented
based on a for-loop (f->channels) plus a conditional,
if (map->chan[j].mux == i).  If this doesn't happen then 'ch'
remains zero.

Once inside decode_residue(..), the code has three branches based
on channel count: stereo (ch == 2), mono (ch == 1), and then the
exception if it's neither of those (simple 'else').  It's in here
where a zero-valued 'ch' can be used as the denominator in these
calculations:
    int c_inter = z % ch
    p_inter = z/ch;

Obviously this 'else' branch is meant for channel counts greater
than two an not for zero channels; so this change simply makes
that branch only valid if (ch > 2).
2019-12-04 22:09:13 -08:00
Dougall Johnson
da79a214ef stb_vorbis: improve fix for theoretical seek performance problem 2019-10-21 20:39:31 +11:00
Dougall Johnson
c3298670d0 stb_vorbis: fix a couple asserts that fail on invalid files 2019-10-21 15:37:04 +11:00
Dougall Johnson
057914d959 stb_vorbis: fix pushdata for files with audio packets in header pages
Fixes #259, #597
2019-10-20 14:42:28 +11:00
Dougall Johnson
7c4eb44a63 stb_vorbis: fix seeking in files with audio packets in header pages
Fixes #682, #580
2019-10-01 20:47:29 +10:00
Dougall Johnson
2abc5c6ced stb_vorbis: fix seek_to_sample_coarse failure near page end 2019-10-01 16:50:21 +10:00
Dougall Johnson
6ca87a9e0e stb_vorbis: fix theoretical seek performance problem 2019-10-01 16:36:41 +10:00
Audino
2a0cff1288 Add comment support to stb_vorbis 2019-09-12 16:51:44 -07:00
Sean Barrett
5c98e6564b stb_vorbis: fix typo in CVE number in docs 2019-08-11 04:26:23 -07:00
Sean Barrett
1b2fa11055 stb_vorbis: bump version number 2019-08-09 04:13:24 -07:00
Sean Barrett
98fdfc6df8 Fix seven bugs discovered and fixed by ForAllSecure:
CVE-2019-13217: heap buffer overflow in start_decoder()
CVE-2019-13218: stack buffer overflow in compute_codewords()
CVE-2019-13219: uninitialized memory in vorbis_decode_packet_rest()
CVE-2019-13220: out-of-range read in draw_line()
CVE-2019-13221: issue with large 1D codebooks in lookup1_values()
CVE-2019-13222: unchecked NULL returned by get_window()
CVE-2019-13223: division by zero in predict_point()
2019-08-09 04:05:22 -07:00
Sean Barrett
2c2908f505 update version numbers 2019-03-04 15:08:53 -08:00
Sean Barrett
a0b521fcf2 no warnings when compiling /W3
compiling all test cases and compilers in test.sbm
   Compilers:
     32-bit:
       VS2015
       VS2013
       VS2008
       VC6 (1998)
       clang-cl 9.0.1
     64-bit
       VS2015
       clang-cl 9.0.1
2019-03-04 14:45:06 -08:00
Sean Barrett
63b59b46b0 update version numbers 2019-02-07 10:03:00 -08:00
Kevin Croft
d1dc3fe89c Fix return typo, disambiguate else, and check for the complete fishead identifier 2019-02-07 08:43:59 -08:00
Kevin Croft
604b9367ee Add detection for Ogg skeleton metadata 2019-02-07 08:43:59 -08:00
luz.paz
622b3adad3 Misc. comment typos
Found via `codespell -q 3`
2018-02-12 14:54:22 -05:00
Sean Barrett
ac66307576 docs 2018-02-11 11:41:20 -08:00
Sean Barrett
b79c8458d3 stb_vorbis: avoid NaN due to uninitialized variable 2018-02-11 11:29:53 -08:00
Sean Barrett
a77d9213e4 stb_vorbis: no dealloca 2018-02-01 03:53:17 -08:00
Sean Barrett
663deb3a43 redo lost stb_vorbis fixes 2018-01-29 15:20:54 -08:00
Sean Barrett
dfff6f5e7c stb_image: fix assert macro usage; stb_vorbis: changelog 2018-01-29 13:15:10 -08:00
Sean Barrett
ee0ebfc79b version numbers 2018-01-29 04:59:32 -08:00
Sean Barrett
244d83bc3d fix unchecked length in stb_vorbis that could crash on corrupt/invalid files 2018-01-29 02:23:18 -08:00
Sean Barrett
dd039e8cc5 credits for mingw fixes in #444 2017-07-23 14:13:07 -07:00
Sean Barrett
3b232a3ff7 Merge branch 'master' of https://github.com/Infatum/stb into dev 2017-07-23 14:10:17 -07:00
Sean Barrett
555efbedfc Update version numbers 2017-07-23 14:09:39 -07:00
Fabian Giesen
2da81a6433 stb_vorbis: MinGW has alloca defined in malloc.h.
Fixes issue #461.
2017-07-22 14:39:52 -07:00
Infatum
4963448726 fix: Build on MinGW32 2017-04-20 15:49:36 +03:00
Sean Barrett
e248e30954 change license to public-domain AND mit (based on twitter vote) 2017-03-03 07:53:07 -08:00