190 Commits (aa86646f2717173f66369d86c6bc7bbbf4e8ceb8)

Author SHA1 Message Date
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
Luis Díaz Más 30773c92a3 WIN32_LEAN_AND_MEAN propagated with exiv2lib target 5 years ago
Robin Mills a82bcebaab fix_cygwin_stack_protection_0.27 5 years ago
Luis Díaz Más f39b23806b Assume existence of stdint.h 5 years ago
Luis Diaz Mas bfd0e0593b Use check_cxx_compiler_flags instead of C version 5 years ago
Robin Mills 0005edf2f9 fix_solaris_stack_protection_0.27 5 years ago
Robin Mills ff0671ccb7
Merge pull request #1275 from jtojnar/fix-paths-0.27
cmake: Fix paths with absolute GNUInstallDirs
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
clanmills 1a2300565a fix_1276_BUILD_PO_0.27 5 years ago
Thomas Petazzoni bbe0b70840
Properly detect availability of flags in cmake/compilerFlags.cmake (#1252)
Instead of relying on fragile and complex logic to decide if a
compiler flag is available or not, use the check_c_compiler_flag()
macro provided by the CMake standard library.

This for example avoids using -fcf-protection on architectures that
don't support this option.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

(cherry picked from commit dd2d181755a6e642c0a8e3225ef5407fff49eb3a)

When resolving the conflict from applying the patch, I also took the liberty
of re-indenting the snippet correcly and fixing mismatching
HAS_FCF_PROTECTION and HAS_FSTACK_PROTECTOR_STRONG variables
(the conditionals used GCC_ prefix but the variables were definded without it).

Signed-off-by: Jan Tojnar <jtojnar@gmail.com>
5 years ago
Robin Mills c85e504faf Disable libiconv support when building with Visual Studio. 5 years ago