5429 Commits (3c20cc06a9ede4e277a9efe94e211c20ceb0ce8d)
 

Author SHA1 Message Date
Dan Čermák 3c20cc06a9 Fix CVE-2017-1000126
CVE-2017-1000126 is a Stack out of bounds read in the WebP parser caused by the
parameter size & filesize being too large, causing the parser to land in an
infinite loop and eventually crash. Enforcing that the size over which the
parser iterates is smaller than the file fixes this issue.

This fixes #175.
7 years ago
Dan Čermák 49db96cd58 [webp] Fix wrong filesize parameter being extracted from the header
The webp header contains the filesize of the image starting at the 8th byte in
bytes 4 to 8 encoded as a little endian 32 bit unsigned integer. The code was
erroneously assuming that the extracted filesize is starting at the 12th byte,
i.e. at the end of the WebP file header.

Source: https://developers.google.com/speed/webp/docs/riff_container
7 years ago
D4N be992520b1
Merge pull request #252 from D4N/add_enforce
Add enforce() from D
7 years ago
Dan Čermák 842dd4cecc Add a unit tests for enforce() 7 years ago
Dan Čermák 5de9a7b562 Add a port of enforce() from D
enforce is a function comparable to assert(), it ensures that a condition is
true. However, while assert() should be used for conditions where we can be
certain that they are true, enforce is intended to be used for conditions that
can fail (like on invalid input). Therefore enforce() throws an exception when
the condition is false and does not abort the program's execution. Also, it is
not turned off by defining NDEBUG.

- add a new file enforce.hpp
- implement enforce()
7 years ago
HumanDynamo 22a0b32c01 Fix typo of Xmp.video.AspectRatio's value type 7 years ago
Luis Díaz Más eb61e57de0 [conan] Update to conan 1.1.1 and recipes in which we depend on
* Update dependency on libexpat to version 2.2.5
    This new version of the conan recipe contain packages for new compilers
* Get gtest and libcurl from bincrafters
* Update the zlib dependency
* Use clang-5.0
7 years ago
Dan Čermák 59b148aee9 Add regression test for CVE-2017-18005 7 years ago
Luis Díaz Más d21e794239 Do not deference value when it does not exist (Thanks D4N) 7 years ago
Luis Díaz Más 01a5d863ad Apply clang-format to Print::printMetadatum 7 years ago
Luis Díaz Más 45fe44aa2f Move condition in if statement to discard work earlier 7 years ago
Luis Díaz Más d82b9434e1 Only print items (Params::prValue) when size > 0 7 years ago
Robin Mills 185d0e9482 #199 Fix for getopt(). Use src/getopt_win32 code instead of libc/getopt() 7 years ago
D4N a4a0516dc4
Merge pull request #238 from D4N/safe_op_improvements
Addition overflow checks improvements
7 years ago
Dan Čermák 06ec1e6984 [safe_op] Refactored addition overflow checks using functions only
- templated structs were not required, SFINAE works for functions too
  => use instead, removes some unneeded code
- fix non-usage of builtins with clang
- adjust unit tests
7 years ago
Dan Čermák 684c8c89de [safe_op] Simplified unsigned int overflow check
Simply check for overflows after the addition, as no undefined behavior can
occur here.
7 years ago
Dan Čermák 31b96b58e7 [safe_op] improved signed int overflow checks via integer promotion
The fallback signed integer overflow check is quite expensive, but the addition
can be safely performed when saved in an int due to integer promotion
rules. This makes the check a little less expensive.
7 years ago
Dan Čermák 029b997ca0 [safe_op] fixed typo in doc-comment 7 years ago
D4N 28fa146d97
Merge pull request #230 from D4N/fix_170
Fix for #170
7 years ago
Dan Čermák cabf756553 Add reproducer for #170 to the test suite 7 years ago
Dan Čermák 751fba8b54 Added dataBuf size check before calling PngChunk::decodeIHDRChunk
- cdataBuf must be at least 8 bytes long otherwise decodeIHDRChunk
  reads out of bounds
- pngImage::readMetadata now skips png chunks where the offset for
  IHDR chunks is invalid
- added assertion into PngChunk::decodeIHDRChunk() to ensure dataBuf
  size
7 years ago
D4N a1ab522eda
Merge pull request #231 from D4N/pngimage_documentation_fix
Fix outdated documentation of PngImage::doWriteMetadata()
7 years ago
Dan Čermák 22a7a8c2ed Fix outdated documentation of PngImage::doWriteMetadata()
The function does not return anything, it only throws exceptions.
7 years ago
D4N 9f74f247b4
Merge pull request #227 from frli8848/master
Nikon mount - Sigma Lens Updates
7 years ago
Dan Čermák 73ac02d7f2 Added test for Sigma lenses 7 years ago
Fredrik lingvall fc8b45dd12 Added the Sigma 120-300mm F2.8 DG OS HSM | S for Nikon mount. 7 years ago
Fredrik lingvall 34a3be025e Added Sigma 50mm F1.4 DG HSM | A mount/UPC code (for Nikon mount). 7 years ago
Fredrik Lingvall 215227024d Added Sigma 20mm F1.4 DG HSM | A mount/UPC code (for Nikon mount). 7 years ago
D4N f9d421b172
Merge pull request #109 from D4N/error_codes_enum
[WIP] Added error codes from src/error.cpp into an enumeration
7 years ago
Dan Čermák 3965a44df2 Replace error variable names in test suite with enum error codes 7 years ago
Dan Čermák a15f090f81 Modified test suite so that case sensitive keys are possible 7 years ago
Dan Čermák efe2ccdcb6 Replaced all hardcoded error codes with ker... constants 7 years ago
Dan Čermák d897997b29 Force error code usage to construct a Exiv2::BasicError
changed parameter code_'s type from int to ErrorCode => requires the
usage of the enum constants
7 years ago
Dan Čermák d3c3c036b8 Incorporated error codes into errList 7 years ago
Dan Čermák b80fa1b4ed Added error codes from src/error.cpp into an enumeration 7 years ago
D4N efee9a2b58
Merge pull request #205 from D4N/CVE-2017-1000127_reproducer
Added reproducer for CVE-2017-1000127
7 years ago
Dan Čermák ead7f309b0 Added reproducer for CVE-2017-1000127 7 years ago
Robin Mills 55001c8ddf
Merge pull request #222 from Exiv2/fix-220
Fix 220
7 years ago
clanmills 7d837d9c86 Changes to test/Makefile following Dan's review. 7 years ago
D4N 9cddfa514d
Merge pull request #207 from D4N/fix_cve_2018_4868
Fix CVE-2018-4868
7 years ago
Dan Čermák 72de0f96f3 Added reproducer for CVE-2018-4868 to the test suite 7 years ago
Dan Čermák fcb4257051 Add check for DataBuf.size_ in Jp2Image::readMetadata()
When parsing a subBox that is a ColorHeader, a length is extracted
from the input file and fed directly into DataBuf() (which calls
malloc). A crafted input file can provide arbitrarily (up to
max(uint32_t)-8) large values and result in excessive memory
allocation.

This commit adds a check for the new size of DataBuf so that it is not
larger than the remaining size of the file.

This fixes #202 aka CVE-2018-4868
7 years ago
Robin Mills 7f56236bb8
Merge pull request #212 from Kicer86/master
fix for crash in bigtiff (issue #208)
7 years ago
Robin Mills a1f1989cb5
Merge branch 'master' into master 7 years ago
clanmills 06e3570f10 Trivial Documentation Update 7 years ago
clanmills 552247c3d0 Update test/Makefile not to exit on error 7 years ago
clanmills c082537967 Fix #220 https://github.com/Exiv2/exiv2/issues/220 7 years ago
D4N 5f360a99af
Merge pull request #217 from D4N/fix_187
Fix for #187
7 years ago
Dan Čermák 80c4d95171 Add regression test for CVE 2017-17669 7 years ago
Dan Čermák e0ab5aaa87 Add error 14 text as a variable to the test suite 7 years ago