Commit Graph

226 Commits

Author SHA1 Message Date
Sean Barrett be6d13cd6d fix bug in png decoding with 1,2,4-bpp images using filter that samples previous line 2017-03-18 10:54:22 -07:00
Sean Barrett 6a3d4786c9 Merge branch 'unknown-marker' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:40:07 -08:00
Sean Barrett 7e389e85c1 Merge branch 'dnl-segment' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:39:31 -08:00
Sean Barrett 15c7e06dc8 Merge branch 'junk-before-marker' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:38:06 -08:00
Sean Barrett dc6089f05b tweak fill byte PR 2017-03-03 08:37:30 -08:00
Sean Barrett 50ae79d811 Merge branch 'fill-bytes' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:36:03 -08:00
Sean Barrett a6dc061137 tweak 16-bit quantization for clarity 2017-03-03 08:35:14 -08:00
Sean Barrett 0befbc3d78 Merge branch 'dequant-16-bits' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:31:57 -08:00
Sean Barrett 014af7b78a Merge branch 'component-ids' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:30:57 -08:00
Sean Barrett 786ac92daa tweak RGB-to-Y conversion 2017-03-03 08:30:49 -08:00
Sean Barrett 64e1799f24 Merge branch 'rgb-grayscale' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:25:29 -08:00
Sean Barrett 8905cb9a8e Merge branch 'patch-1' of https://github.com/RufUsul/stb into working 2017-03-03 08:21:46 -08:00
Sean Barrett 47685c5f84 remove deprecated old-precision jpg path from stb_image.h
tweak license reference wording
2017-03-03 08:19:09 -08:00
Sean Barrett e248e30954 change license to public-domain AND mit (based on twitter vote) 2017-03-03 07:53:07 -08:00
Jeremy Sawicki f5f7dc02a1 stb_image: JPEG: Provide failure reason for unknown marker 2017-03-03 01:11:34 -08:00
Jeremy Sawicki 2219a6da29 stb_image: JPEG: Accept DNL segment 2017-03-03 00:13:27 -08:00
Jeremy Sawicki 6f5677946c stb_image: JPEG: Accept non-zero junk bytes at the end of image data 2017-03-02 23:48:02 -08:00
Jeremy Sawicki 344c3f73d5 stb_image: JPEG: Accept fill bytes in stbi__grow_buffer_unsafe 2017-03-02 23:10:03 -08:00
Jeremy Sawicki e08d398671 stb_image: JPEG: Accept 16-bit quantization tables 2017-03-02 22:32:30 -08:00
Jeremy Sawicki 34fa37bbb4 stb_image: JPEG: Accept any component IDs 2017-03-02 21:40:40 -08:00
Jeremy Sawicki cb7ffb2408 stb_image: Update contributors 2017-03-02 18:19:21 -08:00
Jeremy Sawicki 552c548a0e stb_image: JPEG: Convert RGB to grayscale properly 2017-03-02 18:06:10 -08:00
themanagainstthetank 7e989db555 update stb_image.h
int raw_data[4] to 0, or the compiler bugs
2017-01-16 18:12:31 +08:00
Sean Barrett 96620a3a54 update version numbers 2017-01-16 00:51:24 -08:00
Sean Barrett dead3815e2 credits 2017-01-16 00:05:58 -08:00
Sean Barrett 28c24f7b83 Merge branch 'fix-truncation' of https://github.com/sammyhw/stb into working 2017-01-15 23:58:26 -08:00
Sean Barrett 48710234f2 credits; 1/2/4-bit png fix; easy font spacing; NO_STDIO in image_write 2017-01-15 23:57:53 -08:00
Thomas Ruf f07727a28a stb_image.h: large structures on the stack
more of "allocate large structures on the stack", this time in the forgotten stbi__jpeg_test
-> avoids the infamous _chkstk() when working with CRT
2016-12-28 14:16:45 +01:00
sammyhw ec9db6f84b allow for all 16 bits 2016-12-15 23:49:19 -05:00
Sean Barrett b61b7a74fa update version info 2016-12-04 05:40:21 -08:00
Sean Barrett 7bcaa93a76 Merge branch 'master' of https://github.com/Zelex/stb into merging
Also add more credits
Also fix linking multiple copies with STB_IMAGE_STATIC

Conflicts:
	stb_image.h
2016-12-04 05:38:47 -08:00
Sean Barrett 7759a2a93d fix "misleading indentation" gcc warning 2016-12-04 05:25:24 -08:00
Sean Barrett ae241feec4 Merge branch 'stb_img_overflows' of https://github.com/rygorous/stb into working
Conflicts:
	stb_image.h
2016-12-04 05:20:57 -08:00
Sean Barrett 7736399517 return 16-bit PSDs through 16-bit API (untested) 2016-12-04 05:13:58 -08:00
Sean Barrett e0700d8e2c 16-bit png changes 2016-11-29 04:13:17 -08:00
Sean Barrett 239a6718e1 rename stbi_load parameters to reduce confusion 2016-11-29 03:03:07 -08:00
jon 2a170daee5 warning fixes, more RGBE fix 2016-11-28 16:24:11 -06:00
jon a2defc3d7a added support for RGBE header HDR files 2016-11-28 16:05:39 -06:00
Fabian Giesen 6b66033e18 stb_image: Fix memory leak and missing out-of-mem check.
stbi__process_frame_header had two bugs when dealing with progressive
JPEGs:
1. when malloc failed allocating raw_data, previous components'
   raw_coeff didn't get freed
2. no out-of-memory check in raw_coeff allocation

Fix both and share a bit more cleanup code in general.
2016-10-22 00:29:37 -07:00
Fabian Giesen 62f372754f stb_image: Fix HDR/PSD RLE decoders.
Runs need to be bounds checked.

Fixes issues #315, #317.
2016-10-22 00:29:37 -07:00
Fabian Giesen 02190634c2 stb_image: Overflow checking for image allocs.
Adds some helpers that check whether a product of multiple
factors (that need to be non-negative: this is enforced)
summed with another non-negative value overflows when
performed as int. Since stb_image mostly works in ints,
this seems like the safest route. Limits size of images
to 2GB but several of the decoders already enforce this
limit (or even lower ones).

Also adds wrappers for malloc that combine a mul-add-with-
overflow-check with the actual malloc, and return NULL
on failure. Then use them when allocating something that
is the product of multiple factors.

For image formats, also add a top-level "is this too big?"
check that gives a more useful error message; otherwise,
the failed mallocs result in an "out of memory" error.
The idea is that the top-level checks should be the primary
way to catch these bugs (and produce a useful error message).
But a misleading error message is still vastly preferable to
a buffer overflow exploit.

Fixes issues #310, #313, #314, #318. (Verified with the
provided test images)

Along the way, this fixes a previously unnoticed bug in
ldr_to_hdr / hdr_to_ldr (missing NULL check); these functions
are called with the result of an image decoder, so NULLs can
definitely happen.

Another bug noticed along the way is that handling of
interlaced 16-bit PNGs was incorrect. Fixing this (along
with the previous modifications) fixes issue #311.

Yet another bug noticed during this change is that reduce_png
did not check the right pointer during its out of memory
check. Fix that too.
2016-10-22 00:29:37 -07:00
Fabian Giesen 8c8d735eb7 stb_image: More input validation in deflate decoder
Fixes issue #312.
2016-10-22 00:29:37 -07:00
Sean Barrett fdca443892 fix crash in 2.11 2016-04-02 07:29:34 -07:00
Sean Barrett 6e4154737c update version numbers, documentation, and contributors 2016-04-02 04:51:26 -07:00
Sean Barrett 7a694bdcca re-enable SSE2 code on x64 except with gcc 2016-04-02 04:01:59 -07:00
Sean Barrett 201af99d9f return correct # of channels for PNG 2016-04-02 03:49:46 -07:00
Sean Barrett 591c7f8cb3 remove white matting when loading transparent PSD 2016-04-02 03:44:50 -07:00
Sean Barrett c03f4b3c2f Merge branch 'patch-1' of https://github.com/kinetiknz/stb 2016-04-02 02:57:34 -07:00
Sean Barrett 097a70ae38 Merge branch 'master' of https://github.com/tulrich/stb 2016-04-02 02:56:39 -07:00
Sean Barrett a013c036f3 initialize bmp mr/mg/mb/ma properly 2016-04-02 02:54:25 -07:00