Commit Graph

510 Commits

Author SHA1 Message Date
Glenn Randers-Pehrson
3c7c436303 [libpng16] Imported from libpng-1.6.24beta05.tar 2016-07-14 09:55:35 -05:00
Glenn Randers-Pehrson
9b14f5f85a [libpng16] Fix a bad indent in pngvalid.c 2016-07-13 17:21:31 -05:00
Glenn Randers-Pehrson
66f796e74c [libpng16] Imported from libpng-1.6.24beta03.tar 2016-07-04 09:55:12 -05:00
John Bowler
cfc19ff1b6 pngcp bug fixes
The fixed size buffer for the file name being processed could have a byte
written beyond the end; a bug where the test was updated without changing the
size of the buffer.  This commit reduces the buffer to the system maximum.

png_getrowbytes could, in theory, return 0; probably only if there is a bug in
libpng but the code now checks.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-07-03 13:49:36 -07:00
Glenn Randers-Pehrson
11c88033d4 [libpng16] Added "Common linking failures" section to INSTALL 2016-07-02 14:29:29 -05:00
John Bowler
54feb0ad2a pngimage: correct #define checking
In libpng 1.7 pngimage needs to check PNG_WRITE_PNG_SUPPORTED (new in 1.7), not
PNG_WRITE_SUPPORTED because png_write_png can be disabled without disabling
PNG_WRITE_SUPPORTED.  Copied the approach from 1.6 pngcp.c (so this still works
in 1.6 as well.)
2016-07-02 08:03:09 -07:00
Glenn Randers-Pehrson
b733c50bc0 [libpng16] Updated CHANGES and ANNOUNCE 2016-07-01 18:42:07 -05:00
John Bowler
a93744423d pngcp.c: correct total time output
Signed-off-by: John Bowler <jbowler@acm.org>
2016-07-01 11:29:58 -07:00
John Bowler
9957c45073 pngcp: add high resolution timing
If PNG_PNGCP_TIMING_SUPPORTED is defined maximal resolution CPU time logging of
png_read_png and png_write_png is enabled via the --time command line option.
This is not on by default but is enabled by contrib/conftests/pngcp.dfa

Signed-off-by: John Bowler <jbowler@acm.org>
2016-07-01 11:29:45 -07:00
John Bowler
0ac91cc657 pngcp: tool to copy PNG files
This adds pngcp to the build together with a pngcp.dfa configuration test; the
test revealed some configuration bugs which are fixed by corrections to the
_SUPPORTED macros.

pngcp builds on all tested configurations and a number of bugs have been fixed
to make this happen relative to the version in libpng 1.7 contrib/examples.
pngcp.dfa will have to be different for 1.7 but pngcp.c should work fine (not
yet tested).  pngcp itself is still missing a usage message; this is a
preliminary version, although since it behaves the same way as 'cp' most unoids
shouldn't have a problem using it correctly.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-07-01 11:27:43 -07:00
Glenn Randers-Pehrson
3f2879bf60 [libpng16] Imported from libpng-1.6.24beta02.tar 2016-06-23 11:26:59 -05:00
Glenn Randers-Pehrson
4b4a9583b4 [libpng16] Imported from libpng-1.6.24beta02.tar 2016-06-23 11:08:06 -05:00
John Bowler
21d9e6e0fb SKIP definition in pngstest.c misplaced
The SKIP definition needs to come after the png.h include (see all the other .c
files in contrib/libtests) because it depends on PNG_LIBPNG_VER.  This commit
puts it in the correct place.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-06-22 17:38:56 -07:00
John Bowler
98af505439 Fix MSVC Level 4 warning
MSVC does not like (uInt) = -(unsigned) (i.e. as an initializer), but it is fine
with it if the conversion is explicitly invoked by a cast.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-06-22 17:37:20 -07:00
Glenn Randers-Pehrson
6c7c5a04b8 [libpng16] More efficient absolute value calculation on SSE2 (Matthieu Darbois). 2016-06-20 08:28:34 -05:00
Matt Sarett
36762ac4b4 More efficient absolute value on SSE2 2016-06-20 09:06:25 -04:00
Glenn Randers-Pehrson
ed6db9d86b [libpng16] Imported from libpng-1.6.23.tar 2016-06-09 06:49:42 -05:00
Glenn Randers-Pehrson
f757d74898 [libpng16] Moved sse2 prototype from pngpriv.h to contrib/intel/intel_sse.patch. 2016-05-31 09:45:17 -05:00
John Bowler
bd2370c054 pngvalid.c: don't use size_t count arguments
Coverity rejects code where an array element count has type size_t, this
elminates the code in question from contrib/libtests/pngvalid.c

Signed-off-by: John Bowler <jbowler@acm.org>
2016-05-30 08:12:51 -07:00
Glenn Randers-Pehrson
dbfd68ae3a [libpng16] Update CHANGES, ANNOUNCE, and change date in pngvalid.c 2016-05-29 15:47:57 -05:00
John Bowler
801b925edf pngvalid.c: correct progressive read input buffer
The previous version of the code invariably passed just one byte at a time to
libpng.  The intention was to pass a random number of bytes in the range 0..511
(and this is what happens now).

Signed-off-by: John Bowler <jbowler@acm.org>
2016-05-29 09:30:00 -07:00
Glenn Randers-Pehrson
84cc738166 [libpng16] Imported from libpng-1.6.23beta01.tar 2016-05-29 09:47:30 -05:00
Glenn Randers-Pehrson
ac43a87820 [libpng16] Imported from libpng-1.6.22.tar 2016-05-26 07:25:14 -05:00
Glenn Randers-Pehrson
37ab4d946c [libpng16] Imported from libpng-1.6.22rc03.tar 2016-05-18 07:26:06 -05:00
Glenn Randers-Pehrson
0794fee913 [libpng16] Imported from libpng-1.6.22beta06.tar 2016-05-05 19:37:54 -05:00
Glenn Randers-Pehrson
21939d36ec [libpng16] Use PNG_UINT_31_MAX instead of constant 0x7fffffff in timepng.c 2016-04-29 21:48:52 -05:00
Glenn Randers-Pehrson
8c754b1834 [libpng16] Quieted two Coverity issues in contrib/libtests/timepng.c. 2016-04-28 21:23:37 -05:00
Glenn Randers-Pehrson
2b9f68631c [libpng16] Rebased contrib/intel_sse.patch. 2016-04-27 22:40:39 -05:00
Glenn Randers-Pehrson
eefd9127ca [libpng16] Imported from libpng-1.6.22beta05.tar 2016-04-27 13:01:14 -05:00
Glenn Randers-Pehrson
a967818235 [libpng16] Moved INTEL-SSE code from pngpriv.h to contrib/intel/intel_sse.patch. 2016-04-19 08:23:10 -05:00
John Bowler
af9d06e06a timepng: better errors, fix signed overflow
Too many input files would overflow nfiles

Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-13 10:04:08 -07:00
John Bowler
703944c39d timepng: C++ fixes, correct add_one_file
timepng would could a file as added even if it failed and the assembly file got
rewound.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-13 09:37:25 -07:00
John Bowler
e81f16bf5d timepng: more support requirements
Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-12 21:17:22 -07:00
John Bowler
7572840cd0 timepng requires STDIO
Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-12 21:10:04 -07:00
John Bowler
569a1d27b4 Fix timepng 'skip' return code.
Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-12 21:04:27 -07:00
John Bowler
d642eede9a timepng: fix builds when there is no read support
Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-12 21:01:50 -07:00
John Bowler
5b0a0ded05 ANSI C overlength string fix
Signed-off-by: John Bowler <jbowler@acm.org>
2016-04-12 20:43:29 -07:00
Glenn Randers-Pehrson
5765a22249 [libpng16] Eliminate PNG_NO_INTEL_SSE_3BPP from intel INSTALL 2016-04-05 12:33:17 -05:00
Glenn Randers-Pehrson
f47e1d4995 [libpng16] Eliminated PNG_NO_INTEL_SSE_3BPP which was just for testing. 2016-04-05 12:16:27 -05:00
Mike Klein
8f506d3257 SSE filter speed improvements for bpp=3.
- memcpy-free implementations of load3() / store3().
    These should have less variance compiler to compiler.

    - call load3() only when needed at the end of a scanline.
    In the middle, we can use the faster load4(), ignoring that byte.
2016-04-04 16:10:09 -04:00
Glenn Randers-Pehrson
1a3fa1e091 [libpng16] Imported from libpng-1.6.22beta03.tar 2016-03-09 12:04:40 -06:00
Krishnaraj Bhat
46c47291e8 gcc6: fix misleading indentation warning
Although not a bug in this case, but shows up when -Wall is used
2016-03-07 13:56:15 +05:30
John Bowler
2a25fc41f6 [libpng16] timepng usage message, ability to cache the test set
This makes tests slightly quicker by allowing the temporary file to be created
beforehand.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-02-28 12:24:52 -06:00
Glenn Randers-Pehrson
0df91242a2 [libpng16] Update CHANGES and ANNOUNCE, about timepng.c 2016-02-26 19:35:59 -06:00
John Bowler
9821954ecc contrib/libtests/timepng: make robust, improve
The code no longer gives up/fails on invalid PNG data, it just skips it (with
error messages).  The code no longer fails on PNG files with data beyond IEND.
Options exist to use png_read_png (reading the whole image, not by row) and, in
that case, to apply any of the supported transforms.  This makes for more
realistic testing; the decoded data actually gets used in a meaningful fashion.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-02-26 16:33:38 -08:00
Glenn Randers-Pehrson
e2d113cadf [libpng16] Updated INSTALL instructions for intel SSE code 2016-02-23 09:29:08 -06:00
Glenn Randers-Pehrson
b4f9f5d041 [libpng16] Fixed cut-and-paste errors in the new intel_sse.patch
and added PNG_NO_INTEL_SSE_3BPP macro.
2016-02-22 18:50:59 -06:00
Glenn Randers-Pehrson
6c3d5bd2a0 [libpng16] Moved contrib/intel/*.patch into INSTALL and added intel_sse.patch 2016-02-22 16:38:10 -06:00
Glenn Randers-Pehrson
da9d1d7aa6 [libpng16] Added pngdebug() statements to the new intel code and the arm code. 2016-02-19 14:58:59 -06:00
Glenn Randers-Pehrson
52846504da [libpng16] Fix copyright in sse code, use C-style comments 2016-02-19 09:46:51 -06:00
Glenn Randers-Pehrson
d06d66e899 [libpng16] Added contrib/intel/INSTALL 2016-02-18 22:17:46 -06:00
Glenn Randers-Pehrson
cdd9a23fd4 [libpng16] Fixed include directives in two new intel files to reflect
their new location in contrib/intel/* (was intel/*)
2016-02-18 21:23:24 -06:00
Matt Sarett
c3a45944e2 Fix paths in Makefile.am.patch 2016-02-18 12:45:13 -05:00
Matt Sarett
342c4eab2a Move sse opts into contrib/intel 2016-02-18 12:43:50 -05:00
Glenn Randers-Pehrson
a4a54aa1bf [libpng16] Imported from libpng-1.6.22beta02.tar 2016-02-08 17:13:06 -06:00
John Bowler
e717842a54 pngstest: options to fix per-file seed
Also avoid command output substition in tests/pngstest and fix the collation
locale to ASCII/C/POSIX

Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-28 23:10:04 -08:00
John Bowler
98c6fa2495 PNG_IMAGE_PNG_SIZE_MAX error correction
The macro underreported the size (by up to 512 bytes) of an 8-bit non-color
palette based memory format because it failed to take into account that the
memory palette has to be expanded to full RGB when it is written to PNG.

This is not likely to be a serious bug because the macro is new, the memory
format in question is likely to be rarely used and the result of an undersized
buffer fails in a safe way.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-27 16:22:51 -08:00
John Bowler
ac796d3f9a Only use exit(77) in configure builds
Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-26 17:55:39 -08:00
Glenn Randers-Pehrson
f6a23fe205 [libpng16] Imported from libpng-1.6.22beta01.tar 2016-01-23 14:06:39 -06:00
Glenn Randers-Pehrson
93a3bc7343 [libpng16] Revised workaround for Coverity issue in pngvalid.c 2016-01-23 10:09:18 -06:00
John Bowler
7f576964d8 pngunknown.c: handle unknown IDAT
This is the test backported from 1.7 to ensure that when treating IDATs as
unknown the test does not fail if there are more than one IDAT chunks in the
file.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-18 19:19:14 -08:00
Glenn Randers-Pehrson
94f4e972b5 Merge branch 'libpng16-simple-memory-II' of git://github.com/jbowler/libpng-1 into libpng16 2016-01-18 12:43:36 -06:00
John Bowler
175a126a1a Simplified API: write-to-memory, overflow handling
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>
2016-01-18 09:53:38 -08:00
Glenn Randers-Pehrson
95d2726ecc [libpng16] Update change dates in pngvalid.c and pngfix.c 2016-01-18 09:24:23 -06:00
Glenn Randers-Pehrson
b8dbd78de8 [libpng16] Updated CHANGES, ANNOUNCE, and copyright notice in pngunknown.c 2016-01-18 09:09:33 -06:00
John Bowler
777dbf46dc pngunknown: fix NO_STDIO build
pngunknown.c calls png_init_io (always), skip the test if there is no stdio.h
support.

Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-18 05:08:27 -08:00
Glenn Randers-Pehrson
e8558d2160 [libpng16] Changed PNG_USE_MKSTEMP to __COVERITY__ to select alternate
"tmpfile()" implementation in contrib/libtests/pngstest.c
2016-01-17 16:08:39 -06:00
Glenn Randers-Pehrson
5031c77d85 [libpng16] Bump version to 1.6.22beta01 2016-01-16 08:00:09 -06:00
Glenn Randers-Pehrson
fc0786a442 [libpng16] Imported from libpng-1.6.21.tar 2016-01-15 13:51:06 -06:00
Glenn Randers-Pehrson
780079e771 [libpng16] Worked around a false-positive Coverity issue in pngvalid.c. 2016-01-13 09:50:41 -06:00
John Bowler
b416dc5fc8 Mark 'limit' UNUSED in transform_range_check
Only affects release builds

Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-06 12:58:01 -08:00
Glenn Randers-Pehrson
ecc022ee5f [libpng16] Bump version to libpng-1.6.21rc02.tar 2016-01-06 13:26:32 -06:00
Glenn Randers-Pehrson
092b8d7bf3 [libpng16] Imported from libpng-1.6.21rc01.tar 2016-01-04 08:24:14 -06:00
Glenn Randers-Pehrson
66db757dd4 [libpng16] Happy 2016! Updated copyright year 2016-01-02 13:40:27 -06:00
Glenn Randers-Pehrson
42b438b7dc [libpng16] Update CHANGES and ANNOUNCE 2015-12-17 20:51:13 -06:00
John Bowler
18765d0032 Fix undefined behavior in pngvalid.c
Undefined because (png_byte) << shift is undefined if it changes the signed bit
(because png_byte is promoted to int).  The libpng exported functions
png_get_uint_32 and png_get_uint_16 handle this.

Bug reported by David Drysdale as a result of reports from UBSAN in clang 3.8.

This changes pngvalid to use BE random numbers; this used to produce errors but
these should not be fixed as a result of the previous changes.

Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-17 12:53:08 -08:00
Glenn Randers-Pehrson
4aa590288b [libpng16] Updated CHANGES and ANNOUNCE 2015-12-15 12:55:56 -06:00
John Bowler
2225ca0a54 pngvalid with 'limit' checks disabled in RC+
This widens the 'limit' check on the internally calculated error limits in the
'DIGITIZE' case (the code used prior to 1.7 for rgb_to_gray error checks) and it
changes the check to only operate in non-release builds (base build type not RC
or RELEASE.)

Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-15 08:28:47 -08:00
Glenn Randers-Pehrson
32629bb522 [libpng16] Update CHANGES and ANNOUNCE 2015-12-13 20:35:15 -06:00
Glenn Randers-Pehrson
0bc972fbc2 [libpng16] Fix typo in "last-changed" date. 2015-12-13 20:19:36 -06:00
John Bowler
6cc84b3c44 Fix rgb_to_gray graylo==0 errors, build issues
Fixes to pngvalid for various reduced build configurations (eliminate unused
statics) and a fix for the case in rgb_to_gray when the digitize option reduces
graylo to 0, producing a large error.

Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-13 18:00:41 -08:00
John Bowler
c5e81c51d9 Remove LE/BE dependencies in pngvalid
This 'fixes' the current problem in the BE tests by not testing it, making the
BE code the same as the LE version.

Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-13 17:15:02 -08:00
John Bowler
cbe5d34f6f Backport pngvalid.c from libpng17
One fix is required for libpng16 LE, more for libpng16 BE

Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-13 17:07:36 -08:00
Glenn Randers-Pehrson
0de0101fdd [libpng16] Bump version to 1.6.21beta01 2015-12-08 22:19:15 -06:00
Glenn Randers-Pehrson
5b6a6f914b [libpng16] Imported from libpng-1.6.20.tar 2015-12-02 22:30:37 -06:00
Glenn Randers-Pehrson
030e12ec39 [libpng16] Bump version to libpng-1.6.20rc02.tar 2015-11-29 16:10:46 -06:00
Glenn Randers-Pehrson
e7092bc59c [libpng16] Imported from libpng-1.6.20rc01.tar 2015-11-26 07:04:24 -06:00
Glenn Randers-Pehrson
87049cbf84 [libpng16] Update CHANGES, ANNOUNCE, minor editing of contrib/*/*.c 2015-11-25 15:55:01 -06:00
John Bowler
f5778c8fbb Fix error in handling of bad zlib CMINFO field
Signed-off-by: John Bowler <jbowler@acm.org>
2015-11-25 12:59:42 -08:00
Glenn Randers-Pehrson
92ec30a3b1 [libpng16] Imported from libpng-1.6.20beta03.tar 2015-11-24 09:34:02 -06:00
John Bowler
8a08b6457a Test backport
Tests backported from the multi-version compatible ones in libpng 1.7

Signed-off-by: John Bowler <jbowler@acm.org>
2015-11-23 20:15:51 -08:00
Glenn Randers-Pehrson
f1cdf4e1ca [libpng16] Bump version to 1.6.20beta01 2015-11-13 10:18:18 -06:00
Glenn Randers-Pehrson
415d26805a [libpng16] Imported from libpng-1.6.19.tar 2015-11-12 07:13:31 -06:00
Glenn Randers-Pehrson
6ca8ee1518 [libpng16] Imported from libpng-1.6.19beta04.tar 2015-10-14 22:25:21 -05:00
John Bowler
2163c930b0 pow and sbit fixes backported to pngvalid from 1.7
Signed-off-by: John Bowler <jbowler@acm.org>
2015-10-03 11:14:43 -07:00
John Bowler
04402a9126 Fix (work round) rgb-to-gray issues in libpng 1.6
The previous attempts to ignore the errors in the code aren't quite enough to
deal with the 'channel selection' encoding added to libpng 1.7; abort.
pngvalid.c is changed to drop this encoding in prior versions.

Signed-off-by: John Bowler <jbowler@acm.org>
2015-09-26 17:41:02 -07:00
John Bowler
956f295d48 Merge remote-tracking branch 'local/libpng16' into libpng16 2015-09-25 16:58:43 -07:00
Glenn Randers-Pehrson
61257bc2de [libpng16] Update CHANGES and ANNOUNCE 2015-09-25 18:25:08 -05:00
John Bowler
6297297708 Enable low-bit-depth gray tests in pngvalid
Signed-off-by: John Bowler <jbowler@acm.org>
2015-09-25 16:21:45 -07:00
John Bowler
fd42ef9b06 pngstest 1.6 error limit and warning revisions
Remove the '--strict' in 1.6 because of the double-gamma-correction warning,
update pngstest-errors.h for the errors detected with the new contrib/testspngs
PNG test files.

Signed-off-by: John Bowler <jbowler@acm.org>
2015-09-25 13:40:18 -07:00