summaryrefslogtreecommitdiff
path: root/pngread.c
AgeCommit message (Collapse)Author
2019-02-03Fix a memory leak in the riffled palette optimization on ARM; refactorCosmin Truta
Move deallocation of riffled_palette from png_write_destroy to png_read_destroy. The reader (not the writer) is the owner of riffled_palette. Move allocation and initialization of riffled_palette from png_do_read_transformations to png_init_palette_transformations. Allow riffled_palette inside png_struct only if the ARM Neon optimizations are enabled. Rename png_riffle_palette_rgba to png_riffle_palette_rgba8, etc., to better indicate the strict applicability of these routines. Fix an unused parameter warning in the build configurations where riffled palette optimization is not enabled. Fix indentation.
2018-08-18Remove top-level const from function-scope variablesCosmin Truta
As per the const correctness rules, top-level const-ness of data in automatic scopes does not propagate outside of these scopes (unlike const-ness at lower levels, such as pointers to const data). Previously, const was used liberally, but inconsistently across the libpng codebase. Using const wherever applicable is not incorrect. However, _consistent_ use of const is difficult to maintain in such conditions. In conclusion, we shall continue to use const only where doing so is strictly necessary: 1. If a function guarantees that it will not modify an argument passed by pointer, the corresponding function parameter should be a pointer-to-const (const T *). 2. Static data should not be modified, therefore it should be const. Reference: Google C++ Style Guide https://google.github.io/styleguide/cppguide.html#Use_of_const
2018-08-18Replace the remaining uses of PNG_CONST with constCosmin Truta
In v1.6.0, compiler support for const became a requirement. It should be used consistently. To maintain backwards compatibility, PNG_CONST is still maintained in deprecated form.
2018-07-28Remove the "last changed" version information from source commentsCosmin Truta
This information is maintained by the version control system.
2018-07-15Release libpng version 1.6.35Cosmin Truta
2018-06-17[libpng16] Replace the remaining uses of png_size_t with size_tCosmin Truta
In v1.6.0, size_t became a required type. It should be used consistently. To maintain backwards compatibility, png_size_t is still maintained in deprecated form.
2017-11-03Misc. typosUnknown
Some are user facing. Some are in actual code. Most are in source comments. Also, please double check the changes in contrib/tools/pngfix.c
2017-09-28[libpng16] Imported from libpng-1.6.33.tarGlenn Randers-Pehrson
2017-09-23[libpng16] Add support for loading images with associated alpha in theGlenn Randers-Pehrson
Simplified API (Samuel Williams).
2017-09-06Add support for loading images with associated alpha.Samuel Williams
2017-08-29[libpng16] Fix "last changed" datesGlenn Randers-Pehrson
2017-08-25[libpng16] Bump version to 1.6.33beta01Glenn Randers-Pehrson
2017-08-24[libpng16] Imported from libpng-1.6.32.tarGlenn Randers-Pehrson
2017-08-07[libpng16] Imported from libpng-1.6.32beta11.tarGlenn Randers-Pehrson
2017-07-31[libpng16] Update "Last changed" dates and some copyright yearsGlenn Randers-Pehrson
2017-07-31[libpng16] Updated pngread.c with calls to png_handle_eXIf() omitted from ↵Glenn Randers-Pehrson
previous checkin
2017-07-27[libpng16] Imported from libpng-1.6.31.tarGlenn Randers-Pehrson
2017-07-11[libpng16] Removed one of the GCC-7.1.0 'strict-overflow' warnings thatJohn Bowler
result when integers appear on both sides of a compare. Worked around the others by forcing the strict-overflow setting in the relevant functions to a level where they are not reported. Changed "FALL THROUGH" comments to "FALLTHROUGH" because GCC doesn't like the space. Worked around some C-style casts from (void*) because g++ 5.4.0 objects to them. Increased the buffer size for 'sprint' to pass the gcc 7.1.0 'sprint overflow' check that is on by default with -Wall -Wextra.
2016-10-19[libpng16] Imported from libpng-1.6.26.tarGlenn Randers-Pehrson
2016-10-05[libpng16] Imported from libpng-1.6.26beta05.tarGlenn Randers-Pehrson
2016-10-02[libpng16] Quieted all remaining -Wconversion compiler warningsGlenn Randers-Pehrson
2016-10-02[libpng16] Quieted 45 (out of 86 remaining) -Wconversion compiler warningsGlenn Randers-Pehrson
2016-10-01[libpng16] Bump version to 1.6.26beta03Glenn Randers-Pehrson
2016-09-30Merge branch 'libpng16' of git://github.com/jbowler/libpng into libpng16Glenn Randers-Pehrson
2016-09-30Revert "[libpng16] Quieted about 100 warnings from clang-3.8 in pngtrans.c, ↵Glenn Randers-Pehrson
pngread.c," This reverts commit 97dfccb6325e54d45c4440b6dd037619d88688cc.
2016-09-30[libpng16] Quieted about 100 warnings from clang-3.8 in pngtrans.c, pngread.c,Glenn Randers-Pehrson
pngwrite.c, pngunknown.c, and pngvalid.c. Several warnings still remain in pngvalid.c
2016-09-30Unsigned overflowJohn Bowler
Remove all currently detected cases of unsigned overflow. Detection is runtime, so test case dependent. The changes to pngvalid.c eliminate spurious and probably invalid tests with one while loop exception. Apart from that and the change to the dependence on the intended unsigned overflow in pngtrans.c the changes are limited to altering the meme for an unsigned 'x' from: while (x-- > 0) to for (; x > 0; --x) This works because, in all cases, the control variable is not used in the loop. The 'while' meme was, at one time, warn'ed by GCC so it is probably a good change, for some weird religious value of good. Signed-off-by: John Bowler <jbowler@acm.org>
2016-09-30[libpng16] Quieted 116 (out of 288) -Wconversion compiler warnings by changingGlenn Randers-Pehrson
flag definitions in pngpriv.h from 0xnnnn to 0xnnnnU and trivial changes in png.c, pngread.c, and pngwutil.c.
2016-09-11[libpng16] Conditionally compile png_set_benign_errors() in pngread.cGlenn Randers-Pehrson
2016-08-03[libpng16] Imported from libpng-1.6.24.tarGlenn Randers-Pehrson
2016-07-15[libpng16] Fixed more indentationGlenn Randers-Pehrson
2016-07-13[libpng16] Fixed some indentation to comply with our coding style.Glenn Randers-Pehrson
2016-06-11[libpng16] Imported from libpng-1.6.24beta01.tarGlenn Randers-Pehrson
2016-06-11[libpng16] Avoid potential overflow of the PNG_IMAGE_SIZE macro. This macroJohn Bowler
is not used within libpng, but is used in some of the examples.
2016-06-09[libpng16] Imported from libpng-1.6.23.tarGlenn Randers-Pehrson
2016-05-29[libpng16] Added tests in pngvalid.c to check zero-length IDAT chunks in variousJohn Bowler
positions. Fixed the sequential reader to handle these more robustly (John Bowler).
2016-03-07gcc6: fix misleading indentation warningKrishnaraj Bhat
Although not a bug in this case, but shows up when -Wall is used
2016-01-18Simplified API: write-to-memory, overflow handlingJohn Bowler
This implements an API and provides a number of assist macros to allow an application which uses the simplified API write to bypass stdio and write directly to memory. It also includes some warnings (png.h) and some check code to detect *possible* overflow in the ROW_STRIDE and simplified image SIZE macros. This disallows image width/height/format that *might* overflow. A quiet API change that limits in-memory image size (uncompressed) to less that 4GByte and image row size (stride) to less than 2GByte. Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-13[libpng16] Update copyright uears in source files.Glenn Randers-Pehrson
2015-11-19pngread: avoid clang warning for unreachable codeViktor Szakats
``` pngread.c:2841:10: warning: 'break' will never be executed [-Wunreachable-code-break] break; ^~~~~ ```
2015-09-24[libpng16] Reverted addition of png_set_filler_16 and png_set_add_alpha_16()Glenn Randers-Pehrson
functions. They unnecessarily duplicate png_set_filler() and png_set_add_alpha() which now work properly with 16-bit images.
2015-09-23[libpng16] Reverted the fix of byte order in png_do_read_filler() with 16-bitGlenn Randers-Pehrson
input that was made in version 1.6.17beta01, to preserve legacy behavior even though it was incorrect. Instead, added new API png_set_filter_16() and png_set_add_alpha_16() that set a flag to make png_do_read_filter() interpret the filler bytes properly.
2015-08-17[libng16] Reverted recent mistaken change of 0xnnnn to 0xnnnnULGlenn Randers-Pehrson
2015-08-16[libpng16] Added signed/unsigned 16-bit safety net. This removes the dubiousJohn Bowler
0x8000 flag definitions on 16-bit systems. They aren't supported yet the defs *probably* work, however it seems much safer to do this and be advised if anyone, contrary to advice, is building libpng 1.6 on a 16-bit system. It also adds back various switch default clauses for GCC; GCC errors out if they are not present (with an appropriately high level of warnings).
2015-08-16[libpng16] Changed 0xnnnn constants to 0xnnnnUL.Glenn Randers-Pehrson
2015-08-07[libpng16] Add #ifdef PNG_DEBUG/#endif around normally unreachable codeGlenn Randers-Pehrson
in pngread.c
2015-08-07[libpng16] Removed unreachable "break" statements in png.c, pngread.c, andVictor Szakats
pngrtran.c to suppress clang warnings (Bug report by Viktor Szakats).
2015-06-30[libpng16] Imported from libpng-1.6.18beta08.tarGlenn Randers-Pehrson
2015-06-11[libpng16] Fix some indentation.Glenn Randers-Pehrson
2015-05-06[libpng16] PNG_RELEASE_BUILD replaces tests where the code depended on the ↵John Bowler
build base type and can be defined on the command line, allowing testing in beta builds. Back ported from libpng17.