Log

Author Commit Date CI Message
Cosmin Truta b60656ec 2022-09-14T21:35:33 scripts: Disable the hardware-optimized compilation in legacy makefiles Fix the legacy makefile builds on ARM, MIPS and PowerPC, where hardware-optimized compilation was enabled by default in the generic source files, but without including the machine-specific source files. Delete scripts/makefile.linux-opt.
Cosmin Truta c64655d0 2022-09-14T21:18:20 scripts: Set the compiler warning options to "-Wall -Wextra -Wundef" Considering that "-Wextra" is a more descriptive alternative to "-W", and that "-Wundef" is a highly useful warning option that has been available in ancient versions of gcc (version 2.x), we replace all occurrences of "-W -Wall" with "-Wall -Wextra -Wundef". Also clean up the makefiles.
Cosmin Truta 8b7b99c1 2022-09-14T11:53:47 scripts: Clean up the logging in makefile.std and pnglibconf.mak The console logs produced by these scripts should be easy to follow, especially on CI bots. Delete the unnecessary macros ECHO and SED. Add a new macro MV_F (for "mv -f"), alongside RM_F (for "rm -f").
Cosmin Truta 62c027d4 2022-09-14T11:30:14 Fix handling incorrect hIST chunks of uneven size The hIST chunks, used for storing image histograms, contain arrays of 16-bit unsigned integers, and the chunk size is expected to be an even number. Raise a png_chunk_benign_error() if a hIST chunk fails to meet this expectation. Reported-by: Eugene Kliuchnikov <eustas@google.com>
Cosmin Truta e9e9801a 2022-09-14T11:07:36 Simplify the definition of png_isaligned and avoid compiler warnings The following pointer subtraction was unnecessary: ((const char*)(ptr)-(const char*)0) In order to avoid further warnings about casting a wide pointer type to a narrower integer type, we cast the pointer to the target integer type through (size_t). Also fix a comment and reformat the surrounding code.
Cosmin Truta 0c2388cd 2022-09-14T08:54:57 projects: Delete the definition of _WINDOWS from the VStudio project The _WINDOWS macro should not be defined on a modern Windows platform. This macro was predefined by 16-bit Windows compilers only.
Cosmin Truta 9cb84c4c 2022-09-14T08:54:57 Delete vestigial declarations formerly used on 16-bit platforms Delete the structure members used in the 16-bit Turbo C memory models. Delete the PNG_ABORT declaration used in the 16-bit Windows build. Stop checking macros (e.g. _WINDOWS) predefined by 16-bit Windows compilers (but do check the __NT__ macro, which was the only one predefined by ancient Windows NT compilers).
Cosmin Truta 8c542ad9 2022-09-14T00:42:48 arm: Do not allow PNG_ARM_NEON_CHECK_SUPPORTED on ARM64 ARM Neon is expected to be unconditionally available on ARM64. Issue an #error if PNG_ARM_NEON_CHECK_SUPPORTED is defined on an ARM64-based platform. For the plain ARM platforms where ARM Neon checking is not yet implemented, issue a slightly more descriptive #error, including a suggested course of action.
Cosmin Truta 2abaf81e 2022-09-14T00:12:11 arm: Avoid compiler warnings in palette_neon_intrinsics.c Use correct int types; wrap PNG_UNUSED around unused arguments.
Vadim Zeitlin ad0245bb 2020-05-02T20:29:26 Avoid -Wundef for MIPS and PPC symbols too This is similar to d532334ef (Avoid -Wundef warnings when building libpng, 2017-11-13), but for the similar symbols used under the other architectures: always define them, even if just as 0, to avoid gcc warnings when comparing them with 0 later.
Vadim Zeitlin 1f974dd2 2020-02-04T22:48:25 Avoid -Wundef warnings for PNG_ARM_NEON_IMPLEMENTATION Define this symbol as 0 instead of leaving it undefined when not using ARM NEON optimizations. No real changes, but just avoid a bunch of "PNG_ARM_NEON_IMPLEMENTATION" is not defined, evaluates to 0 [-Wundef] warnings when building the library.
Sami Boukortt 3ec225dd 2019-02-12T14:17:27 Fix a memory leak in png_set_tRNS This leak was discovered by OSS-Fuzz. The old structure of the code was along the lines of: allocate trans_alpha; if (problem) { // Jumps away from this function png_warning("tRNS chunk has out-of-range samples for bit_depth"); } mark trans_alpha as to-free; Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 36bd1bbd 2022-09-13T13:49:02 Fix a crash in png_convert_from_time_t with an invalid time_t argument This bug was found by FUTAG, a program for generating automated fuzz-targets of libraries. TODO: Implement a safe function, alternative to png_convert_from_time_t, which takes a png_ptr argument and raises a png_error if the time_t argument is invalid. Reported-by: Tran Chi Thien <thientc@ispras.ru> Reported-by: Shamil Kurmangaleev <kursh@ispras.ru>
Cosmin Truta 0406deb1 2022-09-13T01:54:17 Fix private macro png_constcast; delete private type png_ptruint In order to appease the compiler warnings that might affect the uses of png_constcast, it should be sufficient to cast the source pointer type to (const void*), and then to (void*), and then to the destination pointer type. An intermediate cast through an integer type, such as (png_ptruint), should not be needed.
Peter Kasting 5f5f98a1 2021-07-26T21:45:09 Fix an instance of -Wunused-but-set-variable. Bug: chromium:1203071
xmuli f10c6bb6 2020-07-08T23:59:46 Add spaces around '/*' and '*/' Like most other Qt coding styles, the necessary spaces should be added to the sides of '/*' and '*/'
luz paz f16427e5 2022-01-08T06:41:50 Fix various typos Found via `codespell -q 3 -S ./ltmain.sh,./scripts/libtool.m4 -L ake,ans,ba,bloc,crashers,doed,inout,lengthh,maked,paeth,parm,parms,redy,unx`
Cosmin Truta 6aff792b 2022-09-13T01:23:52 projects: Update the README file of the Visual Studio project
Gabor Kertesz ed8840a3 2021-10-28T12:54:00 projects: Add ARM64 to Visual Studio project
Gabor Kertesz efdb24e5 2021-10-28T12:51:13 projects: Fix C2220 warning errors for VS2019 It sets warning level lower and not treat as errors because of C2220 warnings are escalated to errors in Visual Studio 2019.
Gabor Kertesz 1f20bc1e 2021-10-28T12:20:45 projects: Upgrade to Visual Studio 2019
Gabor Kertesz bbab5710 2021-10-27T18:45:08 scripts: Add makefile for win-arm64 This makefile is based on makefile.vcwin32, but includes Neon intrinsic optimization. Co-authored-by: Gabor Kertesz <gabor.kertesz@linaro.org> Co-authored-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Gabor Kertesz a1a81cc2 2021-10-25T12:03:42 Fix arm neon config for win-arm64 with MSVC Fixes #398 It adds win-arm64 as an arm64 platform, by using a define which is set to 1 for compilations that target 64-bit ARM processors, otherwise undefined.
Cosmin Truta c3a1d842 2022-09-13T00:56:32 Update INSTALL
Samanta Navarro eda0f47f 2020-10-03T11:51:35 Fix typo in libpng manual
Cosmin Truta 3848c73a 2022-09-12T13:50:32 cmake: Refactor the PNGLIB variables that define the versioning scheme
Cosmin Truta dd8db810 2022-09-10T23:50:49 cmake: Fix the shared build on Android The ld version script should not be generated on Android. Co-authored-by: Volker Krause <vkrause@kde.org> Co-authored-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cameron Cawley 763c77e6 2021-05-22T01:09:48 cmake: Fix compilation on systems without libm Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Christopher Sean Morrison 840af2ed 2022-03-10T01:08:09 cmake: Fix the build on Unix with source files checked out on Windows The issue is that, by default, Git for Windows checks out text files with CRLF line endings. This is a problem for awk, which is expecting Unix-style LF line endings. When cloning on Windows and attempting to compile on WSL, Mingw or Cygwin, there may be an error from awk. The fix is to leverage CMake's ability to configure a file and perform EOL conversions. We copy the awk scripts from the source directory to the build directory. This portable method ensures they have LF endings, and the build logic is updated to use the build directory version. Intentionally avoiding .gitattributes to avoid setting precedent. Co-authored-by: Christopher Sean Morrison <brlcad@gmail.com> Co-authored-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Owen Rudge 8a354b41 2020-12-14T21:24:33 cmake: Fix cross-compilation on macOS Co-authored-by: Owen Rudge <owen@owenrudge.net> Co-authored-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 0fe598d2 2022-09-10T20:45:21 cmake: Rename the target "symbol-check" to "scripts_symbols_chk" Follow the general conventions for naming CMake targets.
Gleb Mazovetskiy cbf8c64b 2021-12-04T11:23:42 cmake: Correctly handle generated files Generated files depend on other generated files, and this previously resulted in the same custom command output being a dependency of multiple other custom commands without a shared custom targets. Adds a top-level target for each generated file and ensures that commands that depend on generated files also depend on the corresponding custom targets. Per CMake documentation: > Do not list the output in more than one independent target > that may build in parallel or the two instances of the rule > may conflict (instead use add_custom_target to drive the command > and make the other targets depend on that one). Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 6a42bc1c 2022-09-05T21:03:20 configure: Initialize PNG_ARM_NEON_OPT and PNG_MIPS_MSA_OPT correctly
Cosmin Truta 9e32b6f1 2022-09-05T17:30:06 Rerun "./autogen.sh --maintainer"
Cosmin Truta cc0e9597 2022-09-05T17:30:06 Clean up configure.ac Remove the obsolete autoconf macros: AC_C_CONST, AC_HEADER_STDC, AC_TYPE_SIZE_T, AC_FUNC_STRTOD. Clean up comments and whitespace.
Dan Field 40342267 2021-06-02T14:38:52 Remove obsolete/incorrect __LLVM,__asm section Contributed-by: Dan Field <dnfield@google.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta bfb0abe4 2022-09-04T20:21:30 Update the configuration for Travis CI and AppVeyor CI Apply the following changes: * Add FreeBSD (besides Linux and Mac) to the Travis CI testing. * Use cc instead of clang for Xcode in the Travis CI testing. * Upgrade the Windows test image from Visual Studio 2019 to Visual Studio 2022 for AppVeyor CI.
Cosmin Truta 081e6751 2022-09-04T19:41:33 ci: Update the CI scripts Apply the following changes: * Set CI_CMAKE_GENERATOR to "Ninja" by default in ci_cmake.sh. * Set CI_CC to cc by default in ci_autotools.sh. * Rename CI_SYSNAME to CI_SYSTEM_NAME; add CI_MACHINE_NAME. * Apply other minor changes and fixes.
Cosmin Truta 103f8346 2022-08-26T03:27:42 cmake: Set PNG_ARM_NEON to "on" by default on ARM64 Avoid build failures on all ARM64-based non-Linux systems. PNG_ARM_NEON can be set to "check" on Linux/ARM32 only.
Cosmin Truta 723b2d9f 2022-08-26T03:12:35 Update the copyright year
Cosmin Truta b7ea74c9 2021-03-15T20:23:26 Update the copyright year
Cosmin Truta 8c3fdb0a 2021-03-15T20:23:26 ci: Update the CI scripts Implement the following updates: * Add CI_SYSNAME and set it to `uname -s`. * Set the default CI_CC value to "clang" on all BSD systems. * Replace CI_SRCDIR_REL_BUILDDIR and CI_INSTALLDIR_REL_BUILDDIR with CI_SRCDIR_NATIVE and CI_INSTALLDIR_NATIVE. The former variables were hard-coded and error-prone; the new variables are computed and safe to use.
Ben Bullock a37d4836 2020-12-15T14:45:21 Eliminate spaces between function name and (
Ben Bullock 37965188 2020-12-11T19:26:57 Remove duplicate line
Ben Bullock 8ca01083 2020-12-11T19:21:35 Fix typo in README
Ben Bullock cd03aaf7 2020-12-11T19:12:40 Remove second call to write_eXIf The second call to write_eXIf doesn't check whether the first call succeeded; no other chunks except tIME and the text chunks seem to be doubled like this. The second call causes the eXIf chunk to incorrectly be written twice.
Qiang Zhou c4bd411c 2019-12-19T18:33:21 Fix decode fail on image with invalid eXIf chunk
Kleber Tarcísio 2224c8ea 2020-07-28T09:17:27 Add a check to pngimage.c Check the result of png_get_IHDR inside the compare_read function. Contributed-by: Kleber Tarcísio Signed-off-by: Cosmin Truta
Cosmin Truta e2bb5e75 2021-03-12T22:54:32 contrib: Apply various fixes to libtests pngimage.c: Initialize sig_bits on a NOTREACHED path to avoid warnings about using uninitialized variables. pngstest.c: Enlarge buffers and fix signedness to avoid legitimate warnings about potential buffer overflows. pngunknown.c: pngvalid.c: Use NULL instead of 0 for pointers and apply other style fixes. makepng.c: tarith.c: Apply various style fixes. Also remove the "last changed" version info from source comments. The version control system maintains this information automatically.
Cosmin Truta d6e13b2a 2020-12-31T04:08:35 .gitignore: Add
Cosmin Truta c2e2cd2e 2020-12-31T03:29:11 ci: Fix the Visual Studio verification on AppVeyor CI The Unix paths in Bash do not mix well with the Windows paths in CMake. The uppercase and the lowercase environment variables do not mix well in MSBuild. Et cetera. On AppVeyor CI, verification of Windows builds with the Visual Studio toolchain used to work, perhaps due to one or more lucky coincidences, but it stopped working after an upgrade on the AppVeyor CI site. Update ci_cmake.sh as follows: * Use POSIX commands like "mkdir" and "rm" instead of CMake commands like "make_directory" and "remove_directory". * Avoid using absolute paths in the CMake command line; use relative paths that are accessible from both Bash and Windows. * Clean up incidental mixtures of Windows and Bash-on-Windows environment variables like {$TEMP,$Temp,$temp} and {$TMP,$Tmp,$tmp}.
Cosmin Truta c3f20917 2020-12-31T00:41:01 ci: Recognize more CI_ variables for better cross-platform verification For ci_autotools.sh, customize CPP, CPPFLAGS, AR, RANLIB, LD, LDFLAGS via CI_CPP, CI_CPP_FLAGS, CI_AR, CI_RANLIB, CI_LD, CI_LD_FLAGS. For ci_cmake.sh and ci_legacy.sh, customize AR, AR_RC and RANLIB via CI_AR and CI_RANLIB. Rewrite portions of ci_legacy.sh to match the style of ci_cmake.sh.
Cristian Rodríguez dbe3e0c4 2018-03-19T12:41:47 libpng.pc.in: zlib dependency is private zlib should be injected only when pkgconfig is ran with the --static option.
Cosmin Truta 2f753e26 2020-05-24T22:09:45 ci: Verify the install target Add support for the install target in ci_autotools.sh and ci_cmake.sh. Also add the environment option CI_NO_INSTALL.
Cosmin Truta f5d5f5ae 2020-05-24T22:01:40 cmake: Refactor the install target; reformat Use standard CMake variables in the install target. Reformulate comments and error messages. Move all CMake keywords in front of their arguments. Fix indentation.
Cosmin Truta 3676fd32 2020-05-18T21:30:30 ci: Add a new top-level directory, dedicated for CI verification Update the ci_*.sh scripts and move them to the more conventional ci/ directory. Update .appveyor.yml and .travis.yml, as well as the AUTHORS file, accordingly. Speed up ci_cmake.sh: add "-DPNG_TESTS=OFF" to the list of CMake variables if CI_NO_TEST is true. Remove "sudo: false" from .travis.yml. Refactor .appveyor.yml.
Alex Gaynor 28c0f889 2018-05-20T18:46:32 cmake: Add an option to enable/disable building of executables Add the CMake option PNG_EXECUTABLES (on by default) in order to allow or disallow the building of non-essential executable programs associated with libpng. Contributed-by: Alex Gaynor <alex.gaynor@gmail.com> Contributed-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 87378bc2 2020-05-17T20:26:28 mips: Remove "last changed" version information from source comment This information is maintained by the version control system.
gxw 6c6f7d10 2020-03-06T14:35:57 mips: Fix initialization: always close "/proc/cpuinfo"
Simon Hausmann 6842c58a 2019-08-30T10:07:09 Fix CMake build with Emscripten When building with Emscripten, linkage to libm is neither required nor working. As find_library will fail, M_LIBRARY will be set to NOTFOUND and the build would fail later. The build works just fine without libm linkage.
Dan Field a6fc8030 2019-08-26T15:04:51 Add an __LLVM,__asm section for clang builds on ARM
Steve Robinson 5e8b45c4 2019-08-24T13:25:14 cmake: Fix a build error on iOS Avoid the awk-based configuration when cross-compiling from macOS to iOS.
Zack Middleton 6dd99ca9 2019-08-02T18:37:04 Fix example.c
willson-chen 52ee1676 2019-07-30T16:01:13 Fix a warning on Linux caused by _BSD_SOURCE I got a warning while compiling under Ubuntu 18.04 and gcc 7.4: "__BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" Quote from the Linux Programmer's Manual: "To allow code that requires _BSD_SOURCE in glibc 2.19 and earlier and _DEFAULT_SOURCE in glibc 2.20 and later to compile without warnings, define both _BSD_SOURCE and _DEFAULT_SOURCE."
skal eb676727 2019-07-29T15:22:06 Fix memory leak if eXIf has incorrect crc Problem description: Imagine a bitstream with an eXIf data segment that has invalid CRC. If png_crc_finish() fails at line 2090, info_ptr->eXIf_buf is not freed (despite the free_me setting at line 2062) because png_free_data() is not called. png_read_info() is actually looping several time over the png_eXIf chunk, calling png_handle_eXIf() several time in a row without freeing the buffer. This patch fixes the problem by leaving info_ptr's content in a clean state in case of failure, as it is done at line 2084.
David Callu 9f734b13 2019-07-04T15:15:53 cmake: Use the correct ZLIB_* variable names ZLIB_LIBRARIES and ZLIB_INCLUDE_DIRS are the official cmake variable names.
Cosmin Truta 3cec1a16 2020-03-29T23:58:29 scripts: Clean up the makefiles Delete variables (ALIGN, ARCH, DOCS) and targets (writelock) that are no longer necessary. Reorder the object file lists alphabetically, consistently across all makefiles and build scripts. Apply other minor fixes.
Cosmin Truta 50bd1abd 2020-03-29T22:26:32 scripts: Fix makefile.std and include it in the CI verification
Cosmin Truta 2dd5630e 2020-03-29T01:11:42 Update configuration for Travis CI; add configuration for AppVeyor CI Exclude the branch "libpng16" from testing. It's identical to "master". Also exclude the other (non-current) "libpng[0-1][0-7]" branches. Parallelize the builds and the unit tests. For Travis CI, update the build matrix as follows: * On Linux, use both clang and gcc. * On macOS, use clang only, with and without Xcode. For AppVeyor CI, add a build matrix as follows: * On Windows, use Microsoft Visual Studio 2019 on x86, x64 and arm64. * Also on Windows, use MSYS2 on x86 and x64. Use the new scripts/ci_*.sh; remove the old scripts/travis.sh.
Cosmin Truta b9155ce3 2020-03-29T00:41:33 scripts: Add general-purpose utilities for continuous integration Currently, libpng supports three different types of build automation: the GNU autotools, CMake, and a legacy of hand-made makefiles. In order to simplify the continous integration of all of the above build options, we introduce the following scripts: * ci_autotools.sh: CI utility for the Autotools build * ci_cmake.sh: CI utility for the CMake build * ci_legacy.sh: CI utility for the legacy makefiles
Cosmin Truta 2c0aee56 2020-02-02T20:02:00 Update the copyright year
Christopher Thompson 301f7a14 2018-11-12T09:47:32 oss-fuzz: Add custom malloc with max limit to prevent OOM This adds the custom malloc/free functions from the old libpng_read_fuzzer to the upstream fuzzer to prevent clusterfuzz running into OOM. Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=904054 Contributed-by: Christopher Thompson <cthomp@chromium.org> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Ryan VanderMeulen 386707c6 2019-04-16T12:51:06 arm: Use <arm_neon.h> when compiling aarch64 intrinsics with clang-cl MSVC's <arm64_neon.h> header contains cl.exe intrinsics that are not recognized by clang-cl. Contributed-by: Ryan VanderMeulen <rvandermeulen@mozilla.com> Contributed-by: Mike Klein <mtklein@google.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 216387f6 2019-04-22T23:56:57 arm: Move a png_debug statement to its correct place It should be placed immediately after all variable declarations.
Cosmin Truta b9e811fa 2019-04-22T23:00:58 scripts: Delete makefile.clang-asan and makefile.gcc-asan Travis CI is now running sanitizer-enabled test jobs.
Cosmin Truta cdbb8ec7 2019-04-22T23:00:58 Add support for Travis CI
Cosmin Truta 72fa1264 2019-04-21T00:30:14 Avoid random test failures by running pngtest sequentially only It is unreliable to run pngtest in parallel, due to competing writes to the same intermediate/output file ("pngout.png"). Customization of this output file name should be possible, but it is currently broken.
Cosmin Truta 5df8e982 2019-04-14T14:10:32 Bump version to 1.6.38.git
Cosmin Truta a40189cf 2019-04-14T14:10:32 Release libpng version 1.6.37
Miguel Ojeda 8da8257d 2019-04-12T10:51:28 Fix typo in the new v2 license Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 27e8b992 2019-04-10T22:23:25 pngminus: Use the system zlib by default If a zlib source tree exists besides the libpng source tree in the same parent directory, the pngminus build may fail, unless the zlib tree is built fully. In order to avoid this failing scenario, do not use the custom-built zlib by default. (The custom-built zlib is still necessary on platforms that lack a system-built zlib.)
Willem van Schaik 62a56d4f 2019-01-23T06:05:54 pngminus: Change license to MIT, etc. Change the license to MIT. Move the license text from the source files to a LICENSE file. Move the change log from the source files to a CHANGES file. Delete the Turbo C makefile and simplify the Linux makefile heavily. Create explicitly named static and shared executables in the makefile. Refresh the README file a bit from the twenty year old one. Signed-off-by: Willem van Schaik <willem@schaik.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
Cosmin Truta 3342fafa 2018-11-25T18:12:50 pngminus: Add a CMakeLists file
Cosmin Truta 3f0f1d55 2018-08-05T21:49:57 pngminus: Improve portability and fix style (cont'd)
Cosmin Truta dcefbc7d 2018-08-05T21:44:11 pngminus: Improve portability and fix style
Cosmin Truta 1f0221fa 2018-08-05T19:40:09 pngminus: Fix a buffer overflow in tokenizer
Cosmin Truta a627bd26 2019-04-07T19:50:12 arm: Partially revert "Fix a memory leak in the riffled palette [...]" The memory leak remains fixed, but the associated refactoring is being reverted. Moving the initialization of the riffled palette from png_do_read_transformations to png_init_palette_transformations has caused a regression in some of the test programs. Although png_init_palette_transformations is the proper place to perform this initialization, and the test programs are technically incorrect to fail, we are still undoing that refactoring for the time being.
Cosmin Truta 82ae623e 2019-03-31T09:44:45 arm: Rename all functions to the pattern png_*_neon; add debug traces
Cosmin Truta 9c0d5c77 2019-02-03T22:40:56 Call png_image_free_function without guarding it with png_safe_execute png_image_free_function (or any other destructor) should never fail. Destructors need not and must not be executed under png_safe_execute. Reference: CVE-2019-7317, use-after-free in png_image_free
Cosmin Truta 8439534d 2019-02-03T21:00:49 Fix a memory leak in pngtest.c Ensure that row_buf is deallocated not only after a read error, but also after a write error. Use the format "%p" instead of "0x%08lx" for printf-ing row_buf in a portable manner.
Cosmin Truta 70d122aa 2019-02-03T19:51:18 Fix a memory leak in the riffled palette optimization on ARM; refactor 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.
Cosmin Truta 0a882b57 2019-01-20T22:21:48 scripts: Add makefile.clang, makefile.clang-asan and makefile.gcc-asan Also apply minor updates to makefile.gcc and makefile.msys
Cosmin Truta fef895aa 2019-01-19T19:01:19 Update the copyright year
Cosmin Truta 43b41418 2018-12-30T13:34:15 scripts: Delete makefile.ne12bsd; clean up makefile.*bsd
Cosmin Truta 6a94d145 2018-12-30T12:00:41 Bump version to 1.6.37.git
Cosmin Truta 0e135457 2018-12-01T09:36:00 Join the branches 'libpng16' and 'master' The branch 'libpng16' is for tracking libpng version 1.6.x. The branch 'master' is for tracking the latest stable libpng version. These branches will diverge again at the next major libpng upgrade.
Cosmin Truta eddf9023 2018-12-01T09:36:00 Release libpng version 1.6.36
Cosmin Truta 85acd919 2018-12-01T09:36:00 [master] Imported from libpng-1.6.36.tar
Cosmin Truta e79085a1 2018-11-05T23:49:39 Introduce the PNG Reference Library License version 2 The new libpng license comprises the terms and conditions from the zlib license, and the disclaimer from the Boost license. The legacy libpng license, used until libpng-1.6.35, is appended to the new license, following the precedent established in the Python Software Foundation License version 2. From now on, the list of contributing authors shall be maintained in a separate AUTHORS file. The lists of previous contributing authors, mentioned in the legacy libpng license and considered to be an integral part of that license, are kept intact, with no further updates.
Cosmin Truta 81a65de2 2018-11-25T20:27:04 Clean up config, scripts, examples, etc.