252 Commits (fec91a97f4d90100355cedf0bc79a0ceef8aa0b6)

Author SHA1 Message Date
Luis Díaz Más b0318c36be
Upgrade C++ standard to c++17 (#2052)
* Enable C++17 and use new inline specifier for const variable members

* Silence deprecation warning on MSVC

* Disable samples by default

* improvements after review
3 years ago
Robin Mills f3393f8308 Fixes following review. 4 years ago
Robin Mills 56939796a0 Restored test lensTest. Minimized differences between main/README.md and 0.27-maintenance/README.md. 4 years ago
Robin Mills 122fb95eb3 Updating documentation to respect ctest. 4 years ago
Kevin Backhouse 5bfa568b63
Add OSS-Fuzz status badge and CIFuzz integration. 4 years ago
Kevin Backhouse cee9015ff8
Add special build mode for OSS-Fuzz. 4 years ago
Kevin Backhouse 64fe77673f
Decouple EXIV2_BUILD_FUZZ_TESTS from EXIV2_TEAM_USE_SANITIZERS. 4 years ago
Christoph Hasse 08975e3dfc refactor: small cleanup of test infra to avoid duplicate runs 4 years ago
Kevin Backhouse bf786f4cc6
Updates to make fuzzing work. 4 years ago
Jeka Pats b2cdf2a535
Add libFuzzer integration + report bug
This commit places the basics for libFuzzer integration with one
fuzzer which fuzzes the readMetadata function. The fuzzer is
located at fuzz/read-metadata.

To add more fuzzers please add them to ./fuzz directory as
described in the README.

Also a memory corruption bug is found using this fuzzer which
might lead to additional bugs after fix is pushed.
4 years ago
Fabrice Fontaine f31c0eba09 add BUILD_WITH_STACK_PROTECTOR option
Add BUILD_WITH_STACK_PROTECTOR to avoid the following build failure with
toolchains that don't support stack-protector:

/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-uclibc/9.3.0/../../../../mipsel-buildroot-linux-uclibc/bin/ld: utils.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag]+0xd0): undefined reference to `__stack_chk_fail'

Indeed, support for -fstack-protector-strong can't be detected through
check_cxx_compiler_flag as some toolchains need to link with -lssp to
enable SSP support

Fixes:
 - http://autobuild.buildroot.org/results/ae4635899124c602c70d2b342a76f95c34aa4a3d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
4 years ago
Luis Díaz Más f30022d73d
Fix issues detected with PVS-Studio + other little improvements (#1689)
* avoid re-declaration of constant variables

* Replace pthreads critical section with std::mutex

* ci - better naming

* cmake - increase minimum version to 3.11. Use project DESCRIPTION

* fix - do not treat string::find() return type as bool

* remove conditions that were always true

* remove condition that were always false

* Remove EXV_HAVE_GMTIME_R which is not used anymore

* pixelWidth_ was inherited from Exiv2::Image

The width & height variables in the TiffImage class need to be mutable
to be able to change their values on the getters pixelHeight() and
pixelWidth() ... Do not ask me why ...

* Remove superfluous if

* pvs:V766 item with identical key added already

* pvs:V730 not all members were initialized (time)

* pvs:V730 not all members are initialized

* pvs:v668 no point in testing pointer against null after new

* pvs:V1048 variable assigned the same value

* replace c-style dynamic vector with std one

* pvs:547 fakeData is always true

* Remove useless constructor in derived class

* pvs:V690 modern way to disable copy-ctor

* Replace malloc/free with new/delete. No need to check for null

* pvs:V1028 cast operands and not result

* Remove custom MIN/MAX functions

* pvs:V595 pointer used before verified against null

* pvs: index used before being checked

* pvs:V1028 possible overflow. Cast operands

* pvs:v575 potential null pointer passed to other functions

* pvs:V547 deal with always true/false expressions

* pvs:V560 part of conditional expressions always false or true

* pvs:V701 possible break in realloc -> move to std::vector

* Make some classes 'final'

* Replace sprintf with std::to_string()

* fix compilation on windows
4 years ago
Luis Díaz Más b54ade76ab Python3 dependency is not obligatory
Some of the CI-Linux-Distros jobs failed because of this. Python3 is not
available by default on Debian:9 nor in Centos:8.

Since we are not currently running the tests in those platforms, and
python3 is just used for testing, we do not want to enforce this project
dependency.
4 years ago
Luis Díaz Más 9710ebe5f0 cmake - Use cmake -E to be able to run tests on different windows shells 4 years ago
Luis Díaz Más 7aa5260af5 cmake: remove obsolete targets 4 years ago
Luis Díaz Más 64eb95a16f cmake: find python3 and use it in tests 4 years ago
Luis Diaz Mas e87424b5e0 Add CTest support 4 years ago
Luis Diaz Mas 8035b7f320 cmake: Add target for obtaining local covarage reports 4 years ago
Luis Díaz Más b675c58bab Move include/CMake to src 4 years ago
Luis Díaz Más 2de3bad869 Remove EXIV2_ENABLE_VIDEO and related stuff 4 years ago
Luis Díaz Más 94b87a8dec Remove deprecated SSH support 4 years ago
Luis Díaz Más 15ac7d13ac
Merge branch 'main' into modernizationCpp 4 years ago
Robin Mills 206a2c495c fix_enableBMFF_v1 4 years ago
Robin Mills 05263a7766 bump_v1.00_version 4 years ago
Robin Mills bf1e9fe4ad fix_1558_cmake_build_type 4 years ago
Luis Díaz Más cd5c8fba49 remove some cmake old checks + newer gtest version 4 years ago
Robin Mills b09019c636 fix_enableBMFF_v1 4 years ago
Robin Mills 350b7b0808 bump_v1.00_version 4 years ago
Robin Mills e1aa4ced4d v0.27.4RC2 4 years ago
Robin Mills fd47dc635d Bump revision number to Exiv2 v0.27.4 RC1. PR will be marked for review. 4 years ago
Robin Mills cd7721c818 Downgrade version to 0.27.4.10 = 0.27.4 RC1 Preview. 4 years ago
Robin Mills 7264238e3e v27_4_rc1_effort2 4 years ago
Robin Mills 16866b3740 Exiv2 v0.27.4 RC1 Preview. 4 years ago
Robin Mills 60d383eabe exiv2_v27_4_rc1 4 years ago
Miloš Komarčević bf43c6cfd1 Replace tabs to fix indentation issues 4 years ago
Robin Mills 1fad29e11f Fix typos. 4 years ago
Robin Mills 21b73b4207 Refactor CMakeList.txt to run all tests using tests/runner.py 4 years ago
Peter Kovář f0a321dedb [WIP] Base Media File Format 4 years ago
Peter Kovář 92469f4c27 [WIP] Add ISO/IEC Base Media File Format 4 years ago
postscript-dev 5dbd53fd09
Update PACKAGE_URL and PROJECT_DESCRIPTION text 5 years ago
postscript-dev c72537830d
Add missing "Xmp" to project description 5 years ago
Robin Mills 483ca6e56b bumpRevision_0.27.4.9 5 years ago
Luis Díaz Más b304244766 Move winsock2 inclusion to http.cpp 5 years ago
Robin Mills 604a268059 Second effort to unexpose winsock2.h from include <exiv2/exiv2.hpp> using EXIV2_BUILDING_EXIV2 mechanism. 5 years ago
Luis Díaz Más f39b23806b Assume existence of stdint.h 5 years ago
Jan Tojnar 48f2c9dbba
cmake: Fix paths with absolute GNUInstallDirs
It is not generally true that `CMAKE_INSTALL_<dir>` variables are relative paths:

https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files
https://github.com/jtojnar/cmake-snips#assuming-cmake_install_dir-is-relative-path

Let's join them properly as paths, not strings.

On Windows, the absolute paths will likely remain unsupported as neither the CMake function,
nor the C++ code is able to detect absolute paths.

Signed-off-by: Jan Tojnar <jtojnar@gmail.com>
5 years ago
Robin Mills ada86be02b Exiv2 v0.27.3 GM 5 years ago
clanmills 7b15178f66 Dump revision number. 5 years ago
Luis Díaz Más 19f57060af Fix cmake install in case of subdirectory use
Original commit 7a7d6a0979664db19462ebc655f23a68da523e63 could not be
cherry-picked. Kudos to Taras Kushnir
5 years ago
clanmills a3451e2e43 Bump Version! (yea, code-complete, I believe). 5 years ago