2684 Commits (b7d76da9d554a9dada7ca0a4e2d9cbc84c8b3847)

Author SHA1 Message Date
Robin Mills 7d42da94d0 Removed wrong ExifData::const_iterator that shadowed the correct one 8 years ago
Luis Díaz Más 00f32316b2 Add missing header 8 years ago
Luis Díaz Más 14ff034fb4 Catch std::overflow_error exception in Print::run 8 years ago
Luis Diaz Mas d09c4bb7cd Fix arithmetic operation overflow 8 years ago
Luis Díaz Más a1023c39ab Add safe_op.hpp to LIBEXIV2_PRIVATE_HDR (to be shown in IDEs) 8 years ago
Dan Čermák 7c00e9128d Fix compilation error with gcc < 5
- overflow builtins were added with gcc 5.0
8 years ago
Dan Čermák ca7c699aa1 Added overflow safe addition function 8 years ago
Robin Mills 8f5b795eaa Fixes to autotools build to respect mn_int.cpp files (#186)
* Fixes to autotools build to respect mn_int.cpp files

* Changes following Luis' code review.
8 years ago
Luis Díaz Más f36bea3801 exiv2::getEnv throws std::out_of_range on unexpected EnVar
This change define explicitly the behavior that exiv2::getEnv should have
on response to unexpected inputs.

There are some other minor changes:

- Use _putenv_s for the unit tests on Windows
- Add todo comment
- Remove deprecated note about freeing memory
8 years ago
Luis Díaz Más 8dc3c1f0a0 Replace malloc/free by new/delete. Use const char* for input arg 8 years ago
Luis Díaz Más bfe057ca20 Auto-formatting done by the IDE while touching code in the previous commits 8 years ago
Luis Díaz Más 8b049922d7 Change exiv2::urlencode signature to return std::string
The goal of this change is to remove the responsibility from the client code to
free the memory of the returned string.
8 years ago
Luis Díaz Más 8c010c903b Compile private part as an OBJECT library (CMake concept) 8 years ago
Luis Díaz Más d3748152a7 add _int suffix to all the internal files 8 years ago
Luis Díaz Más 44fc9ec528 Move Cr2Header to a new .cpp file 8 years ago
Luis Diaz Mas d48abab718 Apply clang-format to some lines of the file canonmn.cpp 8 years ago
Luis Diaz Mas d0a1c6d19d Apply clang-format to bmpimage.cpp 8 years ago
tbeu 2efc2e79da Remove obsolete id 8 years ago
tbeu 5b5987a596 Remove obsolete EXIV2_RCSID 8 years ago
tbeu 5df8b01b77 Remove obsolete svn revision 8 years ago
Robin Mills e96e0daa8a Jp2Image::printStructure: Corrected used DataBuf for output 8 years ago
Robin Mills befe8c64e3 Jp2Image::printStructure: only print output when bPrint is set 8 years ago
Robin Mills 13db7fdec2 Formatting changes 8 years ago
Luis Díaz Más 87a83c89d5
Merge branch 'master' into stringFormat_update 8 years ago
Luis Díaz Más 1fe8d5ba7f Fix conversion issue detected by MSVC 8 years ago
Dan Čermák 36df4bc997 Fixed potential out of bounds file access
This commit adds a out-of-bounds protection in the case that the
extracted values for offset & count are summed up larger than the size
of the file. Also this function checks for overflows before performing
the addition.

This fixes #159
8 years ago
Dan Čermák cfa5073a2c Added short explanation to internal function stringFormat 8 years ago
Dan Čermák 06cafadf4f Added assertion that call to vsnprintf succeeds 8 years ago
tbeu c0ea5f4fba Rewrite the reallocation the C++ way
* Fix handling of the return value of vsnprintf
* In C++11 we could use buffer.data instead of &buffer[0]
8 years ago
tbeu 22dbd632bb Find single character 8 years ago
tbeu d1f73aa237 Make it floats 8 years ago
tbeu 849f416771 Avoid self-assignment 8 years ago
tbeu 867343b46f Utilize const Value reference 8 years ago
tbeu fd64d53e4b Remove superfluous variable declarations 8 years ago
tbeu d7297a2c2c Pass argument as constant reference 8 years ago
Luis Díaz Más 4ad4323685 Add new CMake options to use compiler flags to detect issues in the code (Gcc, Clang & MSVC) 8 years ago
Andreas Sturmlechner 57883ee664
Fix build with EXIV2_BUILD_EXIV2_COMMAND=OFF 8 years ago
Dan Čermák c686843e20 Added exception throw on Value pointer being null
v can be null if the typeId is invalid => throw an exception notifying
the user that his file is corrupted instead of the assertion
8 years ago
Dan Čermák 75940da0a6 Added check for overflows in calculation of size 8 years ago
Dan Čermák 8a586c74bb Fix for CVE-2017-14864, CVE-2017-14862 and CVE-2017-14859
The invalid memory dereference in
Exiv2::getULong()/Exiv2::StringValueBase::read()/Exiv2::DataValue::read()
is caused further up the call-stack, by
v->read(pData, size, byteOrder) in TiffReader::readTiffEntry()
passing an invalid pData pointer (pData points outside of the Tiff
file). pData can be set out of bounds in the (size > 4) branch where
baseOffset() and offset are added to pData_ without checking whether
the result is still in the file. As offset comes from an untrusted
source, an attacker can craft an arbitrarily large offset into the
file.

This commit adds a check into the problematic branch, whether the
result of the addition would be out of bounds of the Tiff
file. Furthermore the whole operation is checked for possible
overflows.
8 years ago
Dan Čermák 6c1ba331b9 Added arithmetic operation overflow error 8 years ago
Dan Čermák ff18fec24b Fix for CVE-2017-14860
A heap buffer overflow could occur in memcpy when icc.size_ is larger
than data.size_ - pad, as then memcpy would read out of bounds of data.

This commit adds a sanity check to iccLength (= icc.size_): if it is
larger than data.size_ - pad (i.e. an overflow would be caused) an
exception is thrown.

This fixes #71.
8 years ago
Dan Čermák 65f45a3505 Added new error message to warn about corrupted metadata 8 years ago
Luis Díaz Más 4beb08e219 Merge pull request #105 from Kicer86/bigtiff
Work in progress - improvements for bigtiff
8 years ago
Luis Díaz Más 8e4aff29c2 Merge pull request #107 from D4N/tiffvisitor_nullptr_check
Use nullptr check instead of assertion, by Raphaël Hertzog
8 years ago
Michał Walenciak 2402a693fd adding missing include for numeric_limits 8 years ago
Luis Díaz Más 93bbf0cab1 Merge pull request #104 from piponazo/removeCpp11Feature
Remove cpp11 features
8 years ago
Dan Čermák e026160556 Use nullptr check instead of assertion, by Raphaël Hertzog
Source:
https://github.com/Exiv2/exiv2/issues/57#issuecomment-333086302

tc can be a null pointer when the TIFF tag is unknown (the factory
then returns an auto_ptr(0)) => as this can happen for corrupted
files, an explicit check should be used because an assertion can be
turned of in release mode (with NDEBUG defined)

This also fixes #57
8 years ago
Luis Díaz Más bef6dad6c5 Merge pull request #103 from AdelieLinux/master
Amend fix for #9 to apply to other Unix systems
8 years ago
Michał Walenciak b1a5d615c5 removing debug message 8 years ago