200 Commits (f23d9656439b5092034d660b93c75a273ffcaabc)

Author SHA1 Message Date
Kevin Backhouse cf6566b13c
Fix indentation 4 years ago
Kevin Backhouse d2bdf6868f
Revert "Fix for https://github.com/Exiv2/exiv2/issues/1856"
This reverts commit e667346582.
4 years ago
Evan Miller 04f4624718
Explicitly test for libproc.h (#1916)
This change adds support for ancient macOS lacking libproc. It also
eliminates a bug where exiv2 could not be built on case-sensitive
file systems (the header file is properly TargetConditionals.h).
4 years ago
Evan Miller 7700f90786
Pass -fstack-protector-strong to linker
Fixes some older compiler / platform combinations (e.g. GCC7 on PPC Mac)
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
Kevin Backhouse ee3016c240
Merge pull request #1813 from kevinbackhouse/FuzzWithASAN
Add sanitizer flags when fuzzing
4 years ago
Kevin Backhouse b6f9a3747f
Add sanitizer flags when fuzzing. 4 years ago
Kevin Backhouse e667346582
Fix for https://github.com/Exiv2/exiv2/issues/1856 4 years ago
Christoph Hasse 2ca56ecbd0 refactor: remove leftover empty if statement 4 years ago
Christoph Hasse 969ffcc439 refactor: remove regex related cmake stuff 4 years ago
Christoph Hasse d152c0c13c refactor: remove FindRegex.cmake 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
Robin Mills fd2ab89de5 exifprint_lint 4 years ago
Attila Oláh 33419c8dd1
Fix compilation with -Wunused-variable
When compiling with -Wunused-variable, `EXT_STRERROR_R_CHAR_P` gets undefined because of a failing compilation check.

An alternative would be to mark `c` as `__attribute__((undefined))`, but MSVC doesn't have `__attribute__((undefined))`.
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 59a80eba2e mac - cmake_paths does not work directly on mac 4 years ago
Luis Díaz Más 08672dbea3 make win debug builds a bit faster 4 years ago
Luis Díaz Más 6c2141959a conan - change generator to be able to use latest expat version 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 53f18cf408 conan: use cmake_paths generator instead of cmake
We also upgraded the xcode version on Travis-CI
4 years ago
Luis Díaz Más c480be5814 cmake: disable -Wuseless-cast 4 years ago
Luis Díaz Más 75bf666d3b Remove typedef to Dictionary::const_iterator 4 years ago
Luis Díaz Más 6c0059b5a0 cmake: Treat xmpsdk headers as system ones
This is done so that when we use EXIV2_TEAM_EXTRA_WARNINGS we do not get
warnings about XMPSDK (we do not want to deal with those)
4 years ago
Luis Díaz Más 83dda6ccd7 Fix warnings related to -Wdeprecated-copy 4 years ago
Robin Mills 33d38dc472 Fix Cygwin64 to use -std=gnu++11 (instead of -std=c++11). MinGW/msys2 remains broken on CI. It's OK on my machine. 4 years ago
Luis Díaz Más 2f3989518a cmake: new toolchain file for MinGW cross-compilation on Ubuntu 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 cd5c8fba49 remove some cmake old checks + newer gtest version 4 years ago
Luis Díaz Más 0bbaa6eff3 cpp: Replace auto_ptr by unique_ptr 4 years ago
Miloš Komarčević b92002b304 Match closing statement, doh 4 years ago
Miloš Komarčević d49affaec5 Check for symlinks when uninstalling
Partly addresses #1501
4 years ago
Robin Mills b975ad4cbb Push change in PR #1500. Thank you @kmilos. 4 years ago
Miloš Komarčević e3c78623f7 Include HEIC type explicitly 4 years ago
Miloš Komarčević 0da1a50afe Revert style changes 4 years ago
Miloš Komarčević e09d093ccf Minor whitespace formatting 4 years ago
Robin Mills 1b47e1e8f6 Fix linux/CI build breaker. 4 years ago
Robin Mills ea968149f2 Fix linux/CI build breaker. 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
Miloš Komarčević 8d06265470 Fix MinGW build for Ninja generator 4 years ago
Robin Mills ec3d6faacf New profiles as documented in README-CONAN.md 5 years ago
Robin Mills fded2da978 Documentation revision in response to #1394 5 years ago