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