Sean Barrett
589a678b65
Merge branch 'master' of https://github.com/recp/stb into working
2020-07-13 04:06:19 -07:00
Sean Barrett
bfaccab17a
Merge branch 'stb-image-fuzzing-fixes' of https://github.com/rcgordon/stb into working
2020-07-13 03:53:53 -07:00
Sean Barrett
fd9c3ea4af
Merge branch 'bmp-assert' of https://github.com/zturtleman/stb into working
2020-07-13 03:01:52 -07:00
Sean Barrett
6f7420a825
add credits for last few PR merges
2020-07-13 02:59:10 -07:00
Sean Barrett
fdafd1aab4
Merge branch 'loadgif-realloc-sized' of https://github.com/SasLuca/stb into test
2020-07-13 02:45:13 -07:00
Sean Barrett
802a1df278
tweak indentation
2020-07-13 02:20:37 -07:00
Colton G. Rushton
9e292f0731
Fix minor typo in comment on line 6532
2020-05-30 17:41:25 -03:00
Recep Aslantas
ec898982b0
stbi: use __thread if GCC can't use _Thread_local
2020-05-26 00:22:12 +03:00
Recep Aslantas
8cb98357de
stbi: fix thread local selector
...
* GCC < 5 supports __thread and GCC >= 5 supports C11 with _Thread_local
* Skip _Thread_local for MSVC because it may not be supported
2020-05-26 00:03:46 +03:00
Ryan C. Gordon
c29138ba59
Add randy408 to the "Bug warnings & fixes" list.
2020-04-29 14:20:33 -04:00
Randy
29d639546d
fix integer arithmetic in stbi__zexpand()
2020-04-29 14:19:01 -04:00
Ryan C. Gordon
b09cb2c6f5
Add Ryan C. Gordon to "Bug & warning fixes" contribution list.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
89f3f35c9f
stbi__skip should return immediately if skipping zero bytes.
...
Otherwise we might waste time or throw away state in the i/o callbacks.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
d60594847e
Reject images that are too large (as defined by the application).
...
The BMP loader already had this hardcoded to (1 << 24) pixels, so this seems
like a good default to apply to all formats, but many apps will want to clamp
this much much lower.
It's possible to craft malicious but valid images that are enormous, causing
stb_image to allocate tons of memory and eat a ton of CPU, so locking these
to a maximum permitted size can save a lot of headaches in the wild.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
98ca24b8c7
Turn several asserts into formal checks.
...
There are several places where stb_image protects itself from bad data with
STBI_ASSERT macros, but if these are compiled out in release builds the code
will overflow buffers, etc, without warning. If they are left enabled, the
process will crash from assertion failures.
This patch attempts to leave the assertions in place that are meant to verify
the correctness of the interfaces (if the calling function was meant to pass
only 8 or 16 for bit depth, it's reasonable to assert that is accurate), but
changes asserts that are triggered by corrupt or malicious image file data.
Failed asserts were the majority of crashes during fuzzing; now all of these
cases safely report an error back to the calling app.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
95560bc6cf
Be more aggressive about unexpected EOF conditions.
...
Fixes several hangs in the presence of bad input data.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
eb4b057f0d
Check a return value for errors.
...
Catches bad input data found during fuzzing.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
b5d2296d5d
Check for some obviously bad inputs from corrupt/malicious data.
...
These all caused crashes during fuzzing.
2020-04-28 13:28:45 -04:00
Ryan C. Gordon
385b5d3cda
stbi__stdio_eof() should check ferror(), too.
...
Otherwise with filesystem errors, you might end up with a short read but
believe there's still more to read from the file, causing infinite loops.
2020-04-28 13:25:57 -04:00
Ryan C. Gordon
00f3f01be3
fseek() resets the EOF flag, even if seeking past the end of a read-only file.
...
This causes problems when stb_image tries to do this with stdio callbacks with
a maliciously crafted file (or just an unfortunately corrupt one)...
// calls fread(), sets EOF flag, sets s->read_from_callbacks = 0
stbi__refill_buffer(s);
// calls fseek(), which resets the stream's EOF flag
stbi__skip(some value we just read)
// calls feof(), which always returns false because EOF flag was reset.
while (!stbi__at_eof(s)) {
// never calls fread() because s->read_from_callbacks==0
stbi__refill_buffer(s);
// loop forever
}
To work around this, after seeking, we call fgetc(), which will set the EOF
flag as appropriate, and if not at EOF, we ungetc the byte so future reads
are correct. This fixes the infinite loop.
2020-04-28 13:25:57 -04:00
Zack Middleton
e919bcd32e
stb_image: fix assert failing when loading BMP
...
This fixes two issues with an assert failing. I tested that the
first part fixes #909 and the second fixes #897 .
1. Loading 16/24/32-bit BMP from memory caused an assert to fail
(excluding 16-bit BMP with hsz 12).
img_buffer offset was always compared with the buffer for
stbi_load_from_file() but stbi_load_from_memory() uses an external
buffer.
Resolution: Change s->buffer_start to s->img_buffer_original.
2. Loading BMP with large header from file caused assert to fail.
img_buffer points to stbi_uc buffer_start[128] but the largest BMP
supported has a 138 byte header (hsz 124) causing img_buffer to wrap
around to an offset of 10. The assert fails because 138 (header size)
!= 10 (offset in temp read buffer).
Resolution: Add the previously read bytes to the offset in temp read
buffer to get the absolute offset.
The issues were introduced by the commit c440a53d06
("stb_image: fix reading BMP with explicit masks").
2020-03-24 21:53:08 -04:00
Luca Sas
c5102ecc4d
Refactored stbi__load_gif_main to use STBI_REALLOC_SIZED instead of STBI_REALLOC.
2020-02-13 13:05:12 +00:00
Sean Barrett
0224a44a10
stb_image: fix new warnings
2020-02-02 20:30:25 -08:00
Sean Barrett
2bb4a0accd
Fix trailing whitespace
2020-02-02 11:30:27 -08:00
Sean Barrett
5e4a0617b7
udpate version numbers
2020-02-02 11:12:13 -08:00
Sean Barrett
1ced9faea1
Merge branch 'unused-function-warnings' of https://github.com/BradleyMarie/stb into work2
2020-02-02 10:11:43 -08:00
Sean Barrett
1586318a00
Merge branch 'master' of https://github.com/Try/stb into work2
2020-02-02 09:53:28 -08:00
Sean Barrett
6877b1afd3
Merge branch 'fix_issue_746' of https://github.com/BlackMATov/stb into work2
2020-02-02 08:52:48 -08:00
Sean Barrett
81d1537579
Merge branch 'fix_issue_745' of https://github.com/BlackMATov/stb into work2
2020-02-02 08:21:46 -08:00
Sean Barrett
28cc61a1ff
stb_image: fix previous fix
2020-02-02 08:16:58 -08:00
Sean Barrett
f9ec936e7e
Merge branch 'patch-1' of https://github.com/GMacharadze/stb into work2
2020-02-02 08:14:23 -08:00
Sean Barrett
ecf2a56f6d
Merge branch 'patch-1' of https://github.com/StylishTriangles/stb into work2
2020-02-02 08:03:06 -08:00
Sean Barrett
eb48fbdced
stb_image: use thread-locals for vertically_flip flag and g_failure_reason
2020-02-02 07:06:05 -08:00
Brad Weinberger
e2b8524aa2
Fix clang unused function compile warnings
2020-02-01 11:41:47 -08:00
Sean Barrett
c440a53d06
stb_image: fix reading BMP with explicit masks
2020-02-01 04:19:28 -08:00
Try
4148eb4d90
stb_image: fix CRC reading at the end of IEND chunk in png file
2019-11-18 19:25:38 +01:00
BlackMATov
01b2d76baf
stb_image.h: fix warning about unused function 'stbi__err'
...
Fixes issue #746 .
2019-08-22 10:28:16 +07:00
Sean Barrett
787f1d646a
Update version numbers
2019-08-11 05:38:37 -07:00
Sean Barrett
5072185467
stb_image: fix static analyzer warnings
2019-08-11 05:19:33 -07:00
Sean Barrett
26a02f81ca
stb_image: fix bug where bmp claimed to be 24-bit but also claimed to have an alpha bitfield
2019-08-11 04:54:52 -07:00
BlackMATov
4a4c9deaac
stb_image: fix warning (unused parameter ‘bpc’)
...
Fixes issue #745 .
2019-05-15 14:12:52 +07:00
Georgy Macharadze
4e0c494515
stb_image: fixed 'out' nulled but not freed upon failure
...
If realloc fails it returns NULL and out pointer becomes invalid. To
fix this it is necessary to store realloc return value in temporary
pointer and then compare it with NULL. If it equals NULL then return
error and source pointer will still valid.
This error was caught by cppcheck:
Common realloc mistake: 'out' nulled but not freed upon failure.
2019-04-22 14:30:12 +03:00
Łukasz Ptak
48ffc6bc55
Fix gcc warning: expression always true
...
stb_image.h:5113:18: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
STBI_ASSERT(v >= 0 && v < 256);
2019-03-16 23:00:14 +01:00
Sean Barrett
2c2908f505
update version numbers
2019-03-04 15:08:53 -08:00
Sean Barrett
d940053a01
Merge branch 'master' into working
2019-03-04 14:56:00 -08:00
Sean Barrett
1737c342e2
Merge branch 'fix_issue-656' of https://github.com/rygorous/stb into working
2019-03-04 14:52:20 -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
Fabian Giesen
d6a598186c
stb_image: Pacify some MSVC warnings.
...
Convince the compiler's dataflow analysis that yes, we are not
reading uninitialized values of coutput.
Fixes issue #608 .
2019-03-01 19:57:12 -08:00
Fabian Giesen
6570d6a825
stb_image: Make GIF reader validate image size.
...
I must've missed it when I did this for the other image loaders.
Either way, combined with the previous checkin, this should fix
issue #614 properly.
Fixes issue #614 .
2019-03-01 19:47:59 -08:00
Fabian Giesen
50b1bfba58
stb_image: Fix multiple bugs in GIF decoder.
...
1. Check not just g->out allocation for failure.
2. If an image descriptor specified a 0-width image, this could be
used to produce an out-of-bounds write.
3. Fix memory leak in case an error occurs during decoding.
Fixes issue #656 .
2019-03-01 19:22:44 -08:00
Sean Barrett
c963e40972
update version numbers
2019-02-25 11:48:42 -08:00
Sean Barrett
5fe7fb52f2
various fixes for clang
...
also fix a comment typo
2019-02-25 11:10:54 -08:00
Sean Barrett
63b59b46b0
update version numbers
2019-02-07 10:03:00 -08:00
Sean Barrett
7463635e52
Merge branch 'patch-3' of https://github.com/NuklearBomb/stb into working
2019-02-07 08:53:19 -08:00
Sean Barrett
694b61fcb1
stb_image: remove non-ASCII character from credits
2019-02-07 07:39:46 -08:00
Sean Barrett
f9d9a419a9
Merge branch 'optimize_stbi__ldr_to_hdr' of https://github.com/technik/stb into working
2019-02-07 07:33:00 -08:00
Sean Barrett
db691f0c69
Merge branch 'fix_1bit_bmp' of https://github.com/plzombie/stb into working
2019-02-07 07:30:39 -08:00
Sean Barrett
79a7719c37
stb_image: fix d1252e1bb9
for building in C
2019-02-07 07:20:58 -08:00
Sean Barrett
7056eae4ae
Merge branch 'issue-609' of https://github.com/dp304/stb into working
2019-02-07 07:19:18 -08:00
Sean Barrett
d1252e1bb9
Merge branch 'master' of https://github.com/ab-cpp/stb into working
2019-02-07 07:17:05 -08:00
Sean Barrett
ba5fc494b4
Merge branch 'master' of https://github.com/WARP-LAB/stb into working
2019-02-07 06:58:18 -08:00
Sean Barrett
f82dbd638c
windows unicode: don't malloc buffers, add explicit STBI_WINDOWS_UTF8 #define
2019-02-07 05:55:03 -08:00
Sean Barrett
ae773aa438
Merge branch 'unicode-file-support' of https://github.com/jrsmith17/stb into temp
2019-02-07 05:07:14 -08:00
Sean Barrett
3005bcfe87
Merge branch 'misc-typos' of https://github.com/luzpaz/stb into working
2019-02-07 05:00:12 -08:00
Sean Barrett
061422f580
fix non-fastpath BMP pixels with bit 31 set when asserts are on
2019-02-07 04:39:51 -08:00
Andrew Beatty
eee50c079d
Update to STB conventions
2019-02-07 07:30:42 -05:00
NuklearBomb
d156642036
Silence warning 'tc' may be used uninitialized in this function
2019-01-29 01:43:31 -05:00
Andrew Beatty
ccc4b3716a
fix compiler warnings and const error
2019-01-22 19:31:46 -05:00
Mikhail Morozov
5d90a8375a
stb_image: fix 1-bit bmp
2018-06-08 07:29:00 +03:00
Carmelo Fernandez Aguera
e64d4f89eb
Added myself to the list of contributors.
2018-06-07 17:10:00 +01:00
Carmelo Fernandez Aguera
f1f077b272
Break a for loop into two parts and get an if out of the loop.
2018-06-07 16:18:23 +01:00
Dobe Peter
a66dd42d4c
stb_image: fix three unused function warnings
2018-05-09 23:24:41 +02:00
kroko / Reinis Adovičs
756166e853
fix comma warnings when building with -Wcomma
...
Happens on standard Xcode Version 9.2 (9C40b) configuration (using Apple LLVM version 9.0.0 (clang-900.0.39.2)). Addresses https://github.com/nothings/stb/issues/515
2018-04-25 15:19:29 +03:00
JR
d0ae424061
Re added unicode filename support for stb_image and stb_image_write with whitespace issues fixed.
2018-02-20 21:38:00 -05:00
luz.paz
622b3adad3
Misc. comment typos
...
Found via `codespell -q 3`
2018-02-12 14:54:22 -05:00
Sean Barrett
fa2a1d9b3b
stb_image version number
2018-02-11 11:57:40 -08:00
Sean Barrett
cd62aa9714
docs
2018-02-11 11:42:05 -08:00
Sean Barrett
0ba9ff6599
stb_image: fix unused variable warning
2018-01-31 07:50:07 -08:00
Sean Barrett
a9672961c9
more cases of STB_NO_HDR and STB_NO_LINEAR interfering
2018-01-30 05:45:59 -08:00
Sean Barrett
602e986824
fix STBI_NO_HDR and STBI_NO_LINEAR to compile correctly even if you don't #include <math.h>
2018-01-30 05:39:29 -08:00
Sean Barrett
ccee11ad79
stb_image: fix warnings
2018-01-30 05:28:37 -08:00
Sean Barrett
dfff6f5e7c
stb_image: fix assert macro usage; stb_vorbis: changelog
2018-01-29 13:15:10 -08:00
Sean Barrett
037926ab74
fix warnings, bad error handling
2018-01-29 08:18:19 -08:00
Sean Barrett
b2c2419b1b
stb_image: avoid arithmetic overflow in png case
2018-01-29 08:14:53 -08:00
Sean Barrett
4fd9019c0f
stb_image: avoid signed left shifts
2018-01-29 07:57:23 -08:00
Sean Barrett
74a21dc615
fix compiler warnings
2018-01-29 07:52:21 -08:00
Sean Barrett
9b2522c3d5
stbi_is_hdr_from_file needs to reset file position
2018-01-29 07:48:12 -08:00
Sean Barrett
d808adb77f
stb_dxt: fix bug with constant color & varying alpha
2018-01-29 05:17:07 -08:00
Sean Barrett
5db03ef592
Merge branch 'master' into working
...
Conflicts:
stb_image.h
2018-01-29 04:04:28 -08:00
Sean Barrett
094cb31ec8
stb_image: compile as C; stb_image_write: credits
2018-01-29 04:03:18 -08:00
Sean Barrett
ae00f3a5f0
stb_image credits
2018-01-29 03:50:42 -08:00
Sean Barrett
1b9689cf77
Merge branch 'feature/gif_frames' of https://github.com/tocchan/stb
2018-01-29 03:50:03 -08:00
Sean Barrett
f9d78c05a9
stb_image credits
2018-01-29 03:49:53 -08:00
Sean Barrett
edf35ad14c
Merge branch 'master' of https://github.com/jlnr/stb
2018-01-29 03:43:08 -08:00
Sean Barrett
0bd0d049e7
stb_image docs
2018-01-29 03:42:34 -08:00
Sean Barrett
ead2b3fe2c
Merge branch 'stbi_is_16' of https://github.com/anael-seghezzi/stb
2018-01-29 03:38:04 -08:00
Sean Barrett
72ef9dcbad
fix fall-through case warning, add credit
2018-01-29 03:27:58 -08:00
Sean Barrett
8cc624142b
credits
2018-01-29 03:25:02 -08:00
Sean Barrett
82f1929de5
Merge branch 'patch-1' of https://github.com/darealshinji/stb
2018-01-29 03:23:53 -08:00
Sean Barrett
da4b342213
credits
2018-01-29 03:23:45 -08:00