Commit Graph

5821 Commits

Author SHA1 Message Date
Dan Čermák
eeb520bf39 [testsuite] Add reproducer for second bug from #159
The bug described in the issue got resolved by PR #461 (slices).
2018-10-12 00:41:46 +02:00
Dan Čermák
4c093fece1 Revert "[Travis CI] Add gcc 8 to the build for UBSAN"
This reverts commit 7d7bbec517.
2018-10-11 22:39:17 +02:00
D4N
9366a935d1
Merge pull request #461 from D4N/slices
Add new API: Slices (aka std::span, but with range checks)
2018-10-11 17:42:32 +02:00
Dan Čermák
1af8e2875e [testsuite] Add reproducers for CVE-2017-17724 & #209, #211 2018-10-11 14:06:16 +02:00
Dan Čermák
962962a8e9 Port Iptc::printStructure & getUshort to slices API
This fixes #211, #210, #209
2018-10-11 14:06:16 +02:00
Dan Čermák
fec6535ae8 [binaryToString] Reimplement using Slices
- reimplement binaryToString:
  - it now accepts a Slice and nothing else
  - it does not return a std::string but instead a proxy object that implements
    operator<< (this should be more efficient, as we do not need to touch the
    heap in most cases)
- addapt unit tests
- replace all occurences with the new API
2018-10-11 14:06:16 +02:00
Dan Čermák
a48d0347b7 [binaryToString] Fixed overread when passing start > 0
binaryToString(DataBuf&) only calls the C-array version. Unfortunately, its
safety check is flawed, as it only works when start is 0 (probably due to its
conterintuitive interface).
binaryToString(byte*) formats the range (start,start+size) => we have to trimm
size if size + start is larger than the DataBuf's size_
2018-10-11 14:06:16 +02:00
Dan Čermák
bfd84ddf5a [binaryToString] Improved ambiguous documentation 2018-10-11 14:06:16 +02:00
Dan Čermák
30787e6f1e [binaryToString] Add unit tests 2018-10-11 14:06:16 +02:00
Dan Čermák
7a7ae7a1df [image_int] Move internal functions into separate translation unit 2018-10-11 14:06:16 +02:00
Dan Čermák
98bca06592 Add Slices: views of STL containers & C-arrays and add unit tests
This commit adds a very simple implementation of std::span but with
mandatory range checks and only the most essential functionality.
2018-10-11 14:06:16 +02:00
Luis Díaz Más
97379dec1d Add braces around try-catch block. Apply clang-format to the function. 2018-10-11 13:40:03 +02:00
Luis Díaz Más
4216dcd0c2 Fix cppcheck issues: knownConditionTrueFalse 2018-10-11 13:40:03 +02:00
Luis Díaz Más
ab35759de8 Fix cppcheck issues: unreachableCode 2018-10-11 13:40:03 +02:00
Luis Díaz Más
54ad1bc91a Fix cppcheck issues: duplicateBreak 2018-10-11 13:40:03 +02:00
Luis Díaz Más
b118192f94 Fix cppcheck issues: redundantAssignment 2018-10-11 13:40:03 +02:00
Luis Díaz Más
c43d998457 Fix cppcheck issues: passedByValue 2018-10-11 13:40:03 +02:00
Luis Díaz Más
989acd18c7 Fix cppcheck issues: uninitMemberVar & uninitVar 2018-10-11 13:40:03 +02:00
Robin Mills
8b9cbc5888 Update taglist sample with more functionality 2018-10-11 12:43:25 +02:00
Luis Díaz Más
19e740b447 Restore API functions remove in #450 2018-10-10 18:16:57 +02:00
Roberto C. Sánchez
c03f73268f Prevent SIGABRT on excessive subBox length in jp2image.cpp
This fixes CVE-2018-9145
2018-10-10 11:52:39 +02:00
Gilles Caulier
af44cec65f Detect Regex lib with cmake instead of pkg_config 2018-10-10 11:47:11 +02:00
Borchers, Henry Samuel
11e66c6c9e BUILD_INTERFACE for include directories use PROJECT_SOURCE_DIR to allow for being built as a CMake subproject 2018-10-07 19:20:37 +02:00
D4N
37b8725565
Merge pull request #451 from D4N/fix_isinf
Fix isinf on Linux too
2018-09-17 11:34:04 +02:00
Dan Čermák
916c535d94 clang-format floatToRationalCast 2018-09-17 10:03:02 +02:00
Dan Čermák
6fd1c5b4bf [types] Fix check for finite numbers on Linux
On Linux we were merely checking whether f is finite, but that does
not cover the case f=NaN.
=> use isfinite instead which checks whether f != inf && f != NaN
2018-09-17 10:02:55 +02:00
Luis Díaz Más
c5d46ac440 Expect std::exception instead of Exiv2::Error 2018-09-14 13:20:08 +02:00
Luis Díaz Más
18690f4c54 Provide default and copy constructor for AnyError 2018-09-14 13:20:08 +02:00
Luis Díaz Más
6e4404da81 Move implementation details from tags.cpp to tags_int.cpp 2018-09-14 13:20:08 +02:00
Luis Díaz Más
b9f913d5af Move implementation to .cpp files. Fix more issues related to visibility settings 2018-09-14 13:20:08 +02:00
Luis Díaz Más
e3f975137c Use STATIC_DEFINE to solve issues with OBJECT library 2018-09-14 13:20:08 +02:00
Luis Díaz Más
4574a659cc Do not use EXIV2API where it is not needed 2018-09-14 13:20:08 +02:00
Luis Díaz Más
6ba4081f95 Use CMake-GenerateExportHeader to generate a macro to export symbols
- Delete the hardcoded macros in config.h taking care of that.
2018-09-14 13:20:08 +02:00
Luis Díaz Más
b78d85c9bb Set default visibility to hidden 2018-09-14 13:20:08 +02:00
Luis Díaz Más
a0e7b7490f Add MSVC definitions back that are still needed 2018-09-14 07:43:21 +02:00
Luis Díaz Más
812762cf5a Remove usage of CPLUSPLUS11 2018-09-14 07:43:21 +02:00
Luis Díaz Más
78c0efeaef Remove unused c++11 stuff from config.h 2018-09-14 07:43:21 +02:00
Luis Díaz Más
5c0a3b9786 Remove unused definitions from config.h 2018-09-14 07:43:21 +02:00
Luis Díaz Más
0da42d0399 Remove useless header inclusions from config.h 2018-09-14 07:43:21 +02:00
Luis Díaz Más
a6aeadc26b Remove unused definitions for MSVC 2018-09-14 07:43:21 +02:00
Luis Díaz Más
ab6aac054a Remove deprecated code from version source files 2018-09-14 07:43:21 +02:00
Luis Díaz Más
1871ce5acd Remove 'version.hpp' inclusion from places where it is not needed
By removing the inclusion from types.hpp we avoid lots of recompilation
of source files.
2018-09-14 07:43:21 +02:00
Luis Díaz Más
10a6e6f96c Adapt output in exiv2-test.out 2018-09-14 07:43:21 +02:00
Luis Díaz Más
d46f7a8746 Remove deprecated stuff from config.h.cmake 2018-09-14 07:43:21 +02:00
Luis Díaz Más
e5bcabd026 Do not print hexadecimal version value when running exiv2 --version 2018-09-14 07:43:21 +02:00
Luis Díaz Más
808de65c37 Use CMake PROJECT_VERSION components in version files 2018-09-14 07:43:21 +02:00
Luis Díaz Más
5eb692d536 CPack: Add tweak number. Now packages include the tweak number in the name 2018-09-14 07:43:21 +02:00
D4N
ae0bfa44df
Merge pull request #180 from Exiv2/disable-printStructure
Disable printStructure()
2018-09-13 16:30:18 +02:00
Dan Čermák
19bb57ff25 Add reproducer for #262 to the test suite 2018-09-13 11:18:29 +02:00
Luis Díaz Más
2b74ad4feb Default initialyze DataBuf::pData_ so that valgrind does not complain 2018-09-13 11:18:29 +02:00