3824 Commits (137ea080b51fb48a7eb1b513d2d565868ccdf68f)

Author SHA1 Message Date
Luis Díaz Más b96f5af037 Remove dead code 3 years ago
Luis Díaz Más 061df50cea keyTXTChunk improvement 3 years ago
Luis Diaz c19425f6a4 Add unit tests for PngChunk::keyTXTChunk 3 years ago
Luis Diaz c898f56ab2 cmake: Add missing source file 3 years ago
Luis Díaz Más 813566526c
Revisiting cmake code for generating coverage reports (#2047)
* cmake: better usage of gcovr for coverage reports

* Add test for FileIo::setPath

* Remove useless seek() overload

* Add missing override specifiers

* ignore .vs folder

* Small refactors in BasicIo implementations

* Remove duplicated doxygen doc

* Refactor & add tests for MemIO

* Fix compilation warnings on windows
3 years ago
Kevin Backhouse a094dde1de
Merge pull request #2040 from kevinbackhouse/TiffEntryBaseStorage
Use std::shared_ptr for storage in TiffEntryBase
4 years ago
Facundo b52b6db39f
Output of -PV was not suitable for inputting to -m-, key was missing. (#1970)
* Output of -PV was not suitable for inputting to -m-, key was missing.

Fix #1969

* Make V flag to -P also print the type

This makes -PV work also for non-built-in tags (of which their type is
not known by exiv2).

* Adjust man to accomodate for the V flag change
4 years ago
Kevin Backhouse 9268279b47
Add comments. 4 years ago
Kevin Backhouse b6a4fd1c67
Add storage parameter to setData. 4 years ago
Kevin Backhouse 29f7d0ccf0
Remove DataBuf::release() which is no longer used. 4 years ago
Kevin Backhouse 9f3240c91c
Delete TiffEntryBase::isMalloced_ field and use a std::shared_ptr instead. 4 years ago
Kevin Backhouse 29cc981180
Merge pull request #2028 from kevinbackhouse/FixIssue2027
Use memmove in TiffEncoder::updateDirEntry
4 years ago
Robin Mills 13a2cf336d
fix_1416_iptc_DateCreated (#1547)
* fix_1416_iptc_DateCreated

* Fix unit tests

* DateValue:read 2nd iteration on pre-condition

* test with ISO_8601 date format

* Use std::regex for ISO 8601 basic & extended date formats

* Use std::regex for ISO 8601 basic & extended time formats

* Add more tests & notes for DateValue & TimeValue

* Comment tests using local calendar times

* DateValue::write also adds padding to year field

Co-authored-by: Luis Díaz Más <piponazo@gmail.com>
4 years ago
Kevin Backhouse e34eacc467
Use memmove, rather than memcpy, because memory regions might overlap. 4 years ago
Miloš Komarčević fd8447129c
Add more DNG 1.6 tags (#2023)
* Add more DNG 1.6 tags

* Update CinemaDNG, add more spec links
4 years ago
Kevin Backhouse 65fad9db0e
Merge pull request #2007 from kevinbackhouse/FixIssue2006
Fix integer overflow in PanasonicMakerNote::printAccelerometer
4 years ago
Kevin Backhouse aebb3fb2c0
Merge pull request #2015 from kevinbackhouse/SonyPreviewUndefined
Treat Exif.Sony1.PreviewImage as undefined tag
4 years ago
Kevin Backhouse 0a1fa497d5
Merge pull request #1999 from jim-easterbrook/bug_1998
Restore modified tags after TZ manipulation
4 years ago
Kevin Backhouse a1ad29edf3
Treat Exif.Sony1.PreviewImage as undefined tag. 4 years ago
Kevin Backhouse 35f48ae5c9
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41438
Replace weird sign-conversion code with a simple static_cast.
4 years ago
Kevin Backhouse 6758e7288d
Merge branch 'main' into fix_exiv2_-pR 4 years ago
Peter 797f86c226
Fix minor whitespace formatting
Co-authored-by: Kevin Backhouse <kevinbackhouse@github.com>
4 years ago
postscript-dev 9c294ef4fd
Fix exiv2: verbose extract to stdout (see #1934)
Fix ignores `--verbose` when extracting to stdout.
4 years ago
Jim Easterbrook 02ce7e9aff Restore modified tags after TZ manipulation
This ensures that Xmp date/times that have been set by the user aren't
over written by the TZ restoration efforts. This fixes bug #1998
4 years ago
Kevin Backhouse fde8ed07b3
Merge pull request #1967 from kevinbackhouse/ReadOrThrow
Add readOrThrow and seekOrThrow to BasicIo
4 years ago
Peter 1ae9f42cd8
Add camera models for NikonFl3 makernotes group (#1994)
* Add camera models for NikonFl3

* Python test for new NikonFl3 camera models
4 years ago
postscript-dev 562b10f2c7
Fix Exif.NikonFl7.FlashCompensation 4 years ago
postscript-dev bd676bedc6
Fix `exiv2 -pR` for Sony images (#1805)
`exiv2 -pR` failed to process Sony makernotes. Fix checks if
makernotes header has Sony string, then uses correct offset.

Fix supplied by @clanmills
4 years ago
postscript-dev 277b1875f7
Fix Exif.NikonFl7.FlashGroupBCControlData output 4 years ago
postscript-dev b3ca98c1e7
Fix Exif.NikonFl7.FlashCompensation pretty print 4 years ago
postscript-dev 8ebf10f921
Fix condition in Exif.NikonFl7.FlashCompensation 4 years ago
postscript-dev f23d965643
Add limits check: Exif.NikonFl7.FlashCompensation 4 years ago
postscript-dev f0f3c7e8a2
Fix compile issues for NikonFl7 makernotes group
+ Fix fuzzing CI errors of `exp2` and `round` not being in `std` by adding
  `#include <cmath>`
+ Fix Windows CI warning C4305 by explicitly defining value as a float
4 years ago
postscript-dev eb134d1946
Add testing for NikonFl7 makernotes group 4 years ago
Kevin Backhouse ab90d430c7
Merge pull request #1979 from postscript-dev/fix_exiv2_sample_thumb_stdout
Add exiv2 extract thumb to stdout (#1934)
4 years ago
Kevin Backhouse 68473d9d10
Remove static functions readOrThrow and seekOrThrow. 4 years ago
Kevin Backhouse 44542a9f94
Add readOrThrow and seekOrThrow to BasicIo. 4 years ago
Miloš Komarčević 8b7d8729b7 Expose unsupported CR3 previews as binary 4 years ago
postscript-dev 31a2467a61
Add exiv2 extract thumb to stdout (#1934): src 4 years ago
Miloš Komarčević 40e5021577 Limit CR3 previews to JPEG only 4 years ago
Kevin Backhouse 0ae85cc4ca
Merge pull request #1974 from dhoulder/skip-isobmff-boxes
Performance boost: don't read boxes we're not interested in
4 years ago
mergify[bot] 2d80891837
Only include expat.h when XMP is enabled. (#1973)
(cherry picked from commit 03cc59122249e79c5a72982b25dad88f4c2803d6)

Co-authored-by: Kevin Backhouse <kevinbackhouse@github.com>
4 years ago
David Houlder 4e587fa931 Performance boost: don't read boxes we're not interested in 4 years ago
David Houlder b385f2db1c
Canon cr3 previews (#1958)
* Extract THMB and PRVW images from Canon CR3 file

* Added test for Canon CR3 preview extraction.

Added test data Canon-R6-pruned.CR3 (first 492016 bytes of https://raw.pixls.us/getfile.php/4659/nice/Canon%20-%20Canon%20EOS%20R6%20-%203:2.CR3).

See https://github.com/Exiv2/exiv2/issues/1893

* Fixed format specifier

* Update src/bmffimage.cpp

Co-authored-by: Miloš Komarčević <4973094+kmilos@users.noreply.github.com>

* Update src/bmffimage.cpp

Co-authored-by: Miloš Komarčević <4973094+kmilos@users.noreply.github.com>

* retrigger checks

Co-authored-by: Miloš Komarčević <4973094+kmilos@users.noreply.github.com>
4 years ago
Kevin Backhouse 71744d5f7f
Merge pull request #1944 from Exiv2/nikon_colorbalance
Extending Nikon3.ColorBalance version coverage
4 years ago
Kevin Backhouse 81cfc162c1
Use std::move to transfer ownership of DataBufs. 4 years ago
Kevin Backhouse 4901c5dba6
Merge pull request #1930 from kevinbackhouse/CiffComponent-pData-ownership
Clarify ownership model of CiffComponent::pData_
4 years ago
Kevin Backhouse 3b0d827047
More =default changes. 4 years ago
Kevin Backhouse 5fdd9da3d3
Use =default. 4 years ago
Miloš Komarčević 2074f82344 Fold into common 02xx versions 4 years ago
Miloš Komarčević 4205e03c43 Extending Nikon3.ColorBalance version coverage 4 years ago
Kevin Backhouse be5a01f0b2
Merge pull request #1921 from kevinbackhouse/FixIssue1920
Fix UBSAN failure caused by left-shift of negative number
4 years ago
Kevin Backhouse 83b9944cdd
We only need to extract one byte. 4 years ago
Kevin Backhouse 887acd098a
Merge pull request #1926 from postscript-dev/fix_sony_temperature_tags
Add conditions to 2 Sony temperature tags
4 years ago
John55h 02d40734a1
Update canonmn_int.cpp
Correct Exif.CanonCs.LensType 38 for "Canon EF 80-200mm f/4.5-5.6 II"
4 years ago
Kevin Backhouse 482cb2ded5
Clarify ownership model of CiffComponent::pData_ 4 years ago
Kevin Backhouse b27aa0b82c
Merge pull request #1922 from postscript-dev/fix_sony_tags
Add SonyMisc(2b|3c) Groups for Sony TIFF files
4 years ago
postscript-dev 54ee165261
Add conditions to 2 Sony temperature tags
Only certain camera models are supported.

Source: https://github.com/exiftool/exiftool/blob/master/lib/Image/ExifTool/Sony.pm
4 years ago
Dmitry Fedorov 45fe046a9c
Update src/tiffimage_int.cpp
Co-authored-by: Miloš Komarčević <4973094+kmilos@users.noreply.github.com>
4 years ago
Dmitry Fedorov 193eea1913
Update src/tiffimage_int.cpp
Co-authored-by: Miloš Komarčević <4973094+kmilos@users.noreply.github.com>
4 years ago
postscript-dev 7ace96263e
Add SonyMisc(2b|3c) Groups in TIFF files
- Previous version only supported JPEGs.
- Update Python test to use more specific grep, as this prevents
  SonyMisc(2b|3c) from being included. Regression test to be added
  in a different commit.
4 years ago
Kevin Backhouse a71bb64fe9
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39060
Fix UBSAN failure caused by left shift of a negative number.
4 years ago
Dmitry Fedorov 1491b106d9 fix for reading jpeg-xr images 4 years ago
Heiko Bauke 8a1e949bff fix out of range access, minor performance improvement 4 years ago
Kevin Backhouse 7d2eb4ad09
Merge pull request #1905 from postscript-dev/update_website_docs
Update website docs
4 years ago
Kevin Backhouse be296814c1
Merge pull request #1913 from kevinbackhouse/FixIssue1912
Fix integer overflow in print0x0007
4 years ago
Kevin Backhouse cd4316c4f5
Do the calculation in floating point to avoid integer overflow. 4 years ago
Evan Miller 04f4624718
Explicitly test for libproc.h (#1916)
This change adds support for ancient macOS lacking libproc. It also
eliminates a bug where exiv2 could not be built on case-sensitive
file systems (the header file is properly TargetConditionals.h).
4 years ago
Kevin Backhouse 801e20123a
Merge pull request #1902 from kevinbackhouse/FixIssue1901
Comment out bogus code in XMPUtils.cpp
4 years ago
Kevin Backhouse d92b0a6717
Merge pull request #1910 from kevinbackhouse/PentaxQuadraticPrint
Fix quadratic loops in pentaxmn_int.cpp
4 years ago
Kevin Backhouse 7cb65d1e25
Merge pull request #1872 from postscript-dev/update_exiv2_manpage
Update exiv2 program and manpage
4 years ago
Kevin Backhouse 9f1e3e3e72
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38887
Fix quadratic loops.
4 years ago
Colin Watson f643d9bb5e Annotate some strings with xgettext:no-c-format
Some descriptions of location properties contain the text "100%
overlap".  When extracting text for translation, `xgettext`
misidentifies this as containing the C format string "% o", and tags it
as `c-format`.  Translation tools that are sensitive to this will
require that translations contain matching format strings; since in this
case the format string is nonsensical, that is often not reasonably
possible.  See:

  https://answers.launchpad.net/launchpad/+question/698762

The description of the DotRange tag contains the text "0% dot and 100%
dot", which is similarly misidentified.

To fix this, inform `xgettext` that the messages do not contain C format
strings, as documented here (towards the end):

  https://www.gnu.org/software/gettext/manual/html_node/c_002dformat-Flag.html
4 years ago
Peter 098283c1f8
Merge branch 'Exiv2:main' into update_website_docs 4 years ago
postscript-dev c4e73831f2
Add missing MpfInfo group to `taglist.exe Exif` 4 years ago
Kevin Backhouse e1e7dddfbd
Fix test failure. 4 years ago
postscript-dev 795cfe90ce
Update exiv2 program, --help and usage 4 years ago
Kevin Backhouse bb9ff53ebe
Throw an exception on integer overflow. 4 years ago
Kevin Backhouse e71b99b236
Merge pull request #1886 from kevinbackhouse/private-pData
Make fields of DataBuf private
4 years ago
Kevin Backhouse bd211a90ac
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37889
Avoid reading 1 byte off the end when the string does not contain a '\0' byte.
4 years ago
Kevin Backhouse 9ff72e5ca5
Make offset=0 the default parameter. 4 years ago
Kevin Backhouse 61a14c45d1
Fix build failure. 4 years ago
Kevin Backhouse e41f0c2cce
Fix build failure on Windows. 4 years ago
Kevin Backhouse c9d0cf3643
Make fields of DataBuf private. 4 years ago
Kevin Backhouse cb16324bcf
Merge pull request #1882 from kevinbackhouse/FixIssue1881
Throw an error if the size of the preview is greater than 1MB
4 years ago
Kevin Backhouse ccfdcf84ea
Merge pull request #1824 from 1div0/JPEG XL
Corrected JPEG XL file type
4 years ago
Kevin Backhouse 67746dee73
Merge pull request #1874 from neheb/emp
remove most usages of std::make_pair
4 years ago
Kevin Backhouse ce02361a64
Only build XMLValidator when XMP is enabled. 4 years ago
Kevin Backhouse 60144df557
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37492
Throw an error if the size of the preview is greater than 1MB.
4 years ago
Kevin Backhouse b35cc5ffa6
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37363
Do some basic XML validation before running the xmpsdk library to avoid bugs in xmpsdk.
4 years ago
Rosen Penev e7eddfc2f5 use more emplace_back
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev f3fcffd6e6 remove most usages of std::make_pair
Better alternatives exist with C++11.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
postscript-dev fbdb38b959
Add missing `--extract` option to exiv2 program
The long option version of `-e` was missing.
4 years ago
Kevin Backhouse 64fe77673f
Decouple EXIV2_BUILD_FUZZ_TESTS from EXIV2_TEAM_USE_SANITIZERS. 4 years ago
Kevin Backhouse a1b65a7928
Merge pull request #1849 from Exiv2/mergify/bp/main/pr-1848
Replace assertion with an error message (backport #1848)
4 years ago
Kevin Backhouse 0dc5cdd910
Merge pull request #1852 from Exiv2/mergify/bp/main/pr-1846
Replace assertion with error message in TiffDirectory::writeDirEntry() (backport #1846)
4 years ago
Kevin Backhouse 330483a859
Merge pull request #1843 from Exiv2/mergify/bp/main/pr-1840
Check that the float is within the range of an int before casting (backport #1840)
4 years ago
Kevin Backhouse 9fd8b40a4e Replace assertion with an error message.
(cherry picked from commit cb32b809c80163c2392543dfb830dffe44e47f91)
4 years ago
mergify[bot] 66259b1c71
Check if embedded RAF image is really a TIFF (backport #1796) (#1851)
* Check if embedded RAF image is really a TIFF

(cherry picked from commit be12ae6f9e2f053bf101902865deadfe7c937f8d)

* Clarify comment on old vs new RAF

Co-authored-by: Christoph Hasse <hassec@users.noreply.github.com>
(cherry picked from commit 30f39ac98c1671547aa0b4021081e374864f1f04)

* Check I/O read result on RAF inspection

Co-authored-by: Kevin Backhouse <kevinbackhouse@github.com>
(cherry picked from commit 09de8dc901a38555151bd87d89ada3bd931451ea)

* Add test

(cherry picked from commit 9c3db7f3c3cb48fe0669061e627174402f366816)

Co-authored-by: Miloš Komarčević <miloskomarcevic@aim.com>
Co-authored-by: Miloš Komarčević <4973094+kmilos@users.noreply.github.com>
4 years ago
Kevin Backhouse 9e160a453b
Replace assertion with an error message. 4 years ago
Peter Kovář 1d095cf751 Removed tag handled separately 4 years ago
Kevin Backhouse 5bc444ff00
Use DataBuf rather than raw malloc. 4 years ago
Kevin Backhouse 7c2ab1d7de
Check that the float is within the range of an int before casting. 4 years ago
Christoph Hasse 0fab606e90 fix: incorrectly triggered enforce check during preview extraction in LoaderTiff::getData(), closes #1829 4 years ago
Kevin Backhouse e34e150f22 Replace assertion with an error message.
(cherry picked from commit 4ec1768415ba015041a9bb28ab17c1ccf6a8c63e)
4 years ago
Kevin Backhouse ed1db4ace2
Use std::round for rounding to nearest. 4 years ago
Kevin Backhouse 8d5e70379e Update src/tags_int.cpp
Co-authored-by: Christoph Hasse <hassec@users.noreply.github.com>
(cherry picked from commit ad2e7221b498258bd04188b66f6da5cefd101e73)
4 years ago
Kevin Backhouse 52d70c8924 Check value is in range before casting from double to uint32_t, to avoid undefined behavior.
(cherry picked from commit 1455cc88466a14d8ea49935005e9de097984f012)
4 years ago
Kevin Backhouse 0e7d80fc84
Merge pull request #1826 from Exiv2/mergify/bp/main/pr-1820
Check that the string isn't empty (backport #1820)
4 years ago
Kevin Backhouse db25089c6f
Merge pull request #1823 from Exiv2/mergify/bp/main/pr-1818
Fix memory leak in pngimage.cpp (backport #1818)
4 years ago
Kevin Backhouse 34aa899513
Merge pull request #1825 from Exiv2/mergify/bp/main/pr-1814
jp2image.cpp: check size before allocation to avoid out-of-memory errors (backport #1814)
4 years ago
Kevin Backhouse 644aaaac92
Check that the string isn't empty 4 years ago
Kevin Backhouse ffde235336
Add comment to explain the bounds-check. 4 years ago
Kevin Backhouse 67e2ef5ccd
Check size before allocation to avoid out-of-memory errors. 4 years ago
Peter Kovář 8f889c132e Corrected JPEG XL file type 4 years ago
Kevin Backhouse c641116b25
Add static_cast to fix build error on Windows. 4 years ago
Kevin Backhouse b8ed3867c0
Use DataBuf, rather than new[], for automatic delete when an exception is throw. 4 years ago
Kevin Backhouse dd4659ce2d Add bounds-check to prevent out-of-bounds read in memcmp.
(cherry picked from commit a6253799d4e3727e32e6412798dceca4200efdda)
4 years ago
postscript-dev 0144209ed0 Add SonySInfo1 makernote tags (tag 3000)
Add all tags, except the face detection sub-groups and related
bookkeeping values.

Source: Exiftool (https://exiftool.org/TagNames/Sony.html)
4 years ago
Kevin Backhouse 2488fc82e9
Merge pull request #1804 from kevinbackhouse/FuzzMore
Add fuzzing dictionary and test all printStructure() options
4 years ago
Christoph Hasse e086c7cbd2 add Canon EF 100-400 2x, and make size of aperture lens matching delta dependent on teleconverter factor 4 years ago
Christoph Hasse 7d2f2d2526 make the ifdef in getExiv2ConfigPath a bit more minimal 4 years ago
Christoph Hasse 95c2c26747 Fixes for Max and Win 4 years ago
Christoph Hasse 6d5407e851 first search cwd for config file then check home dir 4 years ago
Christoph Hasse 6fd6c8b3dd fix: SIGSEGV on parsing of config file. (introduced in main by clang-tidy fix) 4 years ago
Kevin Backhouse 22b876d278
Merge pull request #1800 from postscript-dev/add_SonyMisc3c_tags
Add SonyMisc3c makernote tags (tag 9400)
4 years ago
Kevin Backhouse 593fcbd865
Add fuzzing dictionary and test all printStructure() options 4 years ago
Kevin Backhouse 35a2b25d64
Fix build error when EXIV2_DEBUG_MESSAGES is enabled. 4 years ago
Kevin Backhouse 2532f6db40
Add `markerHasLength` utility function. 4 years ago
Kevin Backhouse 96b85751ee
Add comment to explain bounds-check. 4 years ago
Kevin Backhouse 10bd09871f
Update src/jpgimage.cpp
Co-authored-by: Christoph Hasse <hassec@users.noreply.github.com>
4 years ago
Kevin Backhouse fed192dc97
Fix compiler warning. 4 years ago
Kevin Backhouse 483a1497a0
Improved handling of jpg segments to avoid out-of-bound reads. 4 years ago
Kevin Backhouse deb41bd117
bufRead needs to be adjusted after seek() 4 years ago
postscript-dev cc9d780534
Add SonyMisc3c makernote tags (tag 9400)
Changes:
+ Add tags. Rename Exiftool `SequenceLength` tags to `SequenceLength1`
  and `SequenceLength2`, to prevent a name clash.
+ Update docs and manpage.

Source: [Exiftool](https://exiftool.org)
4 years ago
Kevin Backhouse 01b109e8ff
Merge pull request #1798 from Exiv2/mergify/bp/main/pr-1789
&bytes[0] (std::vector) will crash if bytes has zero elements (backport #1789)
4 years ago
Kevin Backhouse c3239e3187 &bytes[0] will crash if bytes has zero elements.
(cherry picked from commit 3e72d129e53b14e0b62d74aefed6bbd326562d63)
4 years ago
Kevin Backhouse 9004fb5a97 Remove redundant check.
(cherry picked from commit 19026fab2bc2b6dee2150f38153feb65a41cea17)
4 years ago
Kevin Backhouse 07225c05ee Make sure that read is complete to prevent infinite loop.
(cherry picked from commit ffe5eb517dad93845e62144d8e53f52b17420ecd)
4 years ago
Christoph Hasse 7251a96da6 remove exv_grep_keys_t type alias 4 years ago
Christoph Hasse d6c82b88bc refactor: avoid unused variable warning of regex_error 4 years ago
Christoph Hasse 687b38a130 refactor: use POSIX regex syntax as that is what was used before 4 years ago
Christoph Hasse d82980b563 refactor: replace old linux regex.h with regex from STL. 4 years ago
Kevin Backhouse 944e68fa15
Merge pull request #1787 from Exiv2/mergify/bp/main/pr-1766
Extra checking to prevent loop counter from wrapping around (backport #1766)
4 years ago
Kevin Backhouse 686702616c
Merge pull request #1794 from kevinbackhouse/bmff-check-box-nesting
Enforce BMFF box nesting
4 years ago
Kevin Backhouse 3575a8258e
Merge pull request #1786 from Exiv2/mergify/bp/main/pr-1769
Safer std::vector indexing (backport #1769)
4 years ago
Christoph Hasse 9aabdcf698 fix: add Sigma 30mm f/1.4 DC DN | C to canon lens detection 4 years ago
Kevin Backhouse 5eb464271e
Fix format specifier. 4 years ago
Kevin Backhouse 43d95b8a75
Fix compiler warnings. 4 years ago
Kevin Backhouse 3019fbee4f
Extra protection against large allocations. 4 years ago
Kevin Backhouse 78e9c8aa82
address + box_length == box_end 4 years ago
Kevin Backhouse 02d4ef2c5e
Support for 64-bit box lengths looked broken. 4 years ago
Kevin Backhouse 8c64e9abba
Add `pbox_end` param to `BmffImage::boxHandler` to enforce box nesting. 4 years ago
postscript-dev 293fd586ab
Add SonyMisc2b makernote tags (tag 9404)
Changes:
+ Add tags, pretty printing and tag group selector function
+ Update docs

Source: https://exiftool.org/TagNames/Sony.html
4 years ago
postscript-dev b82084995c
Add `getExifValue()` to `makernote_int.cpp`
Function generalizes `getExifModel()`, allowing any value in a tag to
be accessed.
4 years ago
Kevin Backhouse eb2782e685
Fix warning: comparison of integer expressions of different signedness 4 years ago
Kevin Backhouse 67a46f742d
Type of escapeStart should be size_t. 4 years ago
Kevin Backhouse 670dfb2fab
Better fix for potential integer overflow in `bytes.size() - 3`. 4 years ago
Kevin Backhouse 69d82ffe01
Defensive coding changes to avoid integer overflow in loop conditions. 4 years ago
Kevin Backhouse ad5e6c479c
Extra checking to prevent the loop counter from wrapping around. 4 years ago
Kevin Backhouse dc2c77ce81
Safer std::vector indexing. 4 years ago
Kevin Backhouse 82057a6a1d
Merge pull request #1777 from postscript-dev/update_sony2fp_tags
Update Sony2Fp tags
4 years ago
Kevin Backhouse d5ada325af
Check that `type` isn't an empty string. 4 years ago
postscript-dev 510a38e27d
Move all `startsWith()` funcs to `Util` namespace
The function checks if a string is in the beginning of another. This
is intended for use until the move to C++20 when
`std::basic_string<>::starts_with()` becomes available. Suggested in
https://github.com/Exiv2/exiv2/pull/1777 .

Separate identical definitions have been moved into a single copy.
4 years ago
postscript-dev 0827a76b6a
Update Sony2Fp makernote functions
Minor changes using suggestions in #1777:
+ Simplify loop conditions
+ Add startsWith() in SonyMakerNote class
+ Change `if`/`else` to `switch`
4 years ago
Kevin Backhouse e4e3362284
Defensive programming in Image::printIFDStructure 4 years ago
Kevin Backhouse caf08b229e
dirLength == 0 can cause an infinite loop. 4 years ago
Kevin Backhouse 0208b508a0
Merge pull request #1773 from kevinbackhouse/fuzz
Add fuzz target
4 years ago
Kevin Backhouse fa52d7e2cb Better way to print the error message. 4 years ago
Kevin Backhouse 6685b8db4a Print message to stderr when EXIV2_DEBUG_MESSAGES is enabled. 4 years ago
Kevin Backhouse f724f4e2fc Don't crash if s > size. 4 years ago
postscript-dev e821404d69
Merge branch 'update_sony2fp_tags' of https://github.com/postscript-dev/exiv2 into update_sony2fp_tags 4 years ago
postscript-dev 4a21b45e60
Update Sony2Fp makernote tag selector function
In C++20, std::string has a starts_with() function. Add a startsWith()
function now, which can be replaced when the project moves to C++20.

Suggested in https://github.com/Exiv2/exiv2/pull/1777
4 years ago
Peter 670c89b2bd
Merge branch 'Exiv2:main' into update_sony2fp_tags 4 years ago
postscript-dev 4ac8ac9ba0
Update Sony2Fp makernote tags (tag 9402)
Changes:
+ Add pretty printing for all tags
+ Add camera selector, to prevent incompatible models using tags
+ Update testing with new values

Source: Exiftool (https://exiftool.org/TagNames/Sony.html)
4 years ago
Kevin Backhouse 6798be637f
Merge pull request #1774 from Exiv2/mergify/bp/main/pr-1745
fix: avoid processing MOV (quicktime) files when BMFF is enabled (backport #1745)
4 years ago
Kevin Backhouse 7b3dd26c23
Merge pull request #1718 from opengisch/ios
Fix building for ios
4 years ago
postscript-dev eb22591cea
Fix formatting of sonyMisc1 makernote tags 4 years ago
Christoph Hasse 3e681c6730 fix: avoid processing MOV (quicktime) files when BMFF is enabled
(cherry picked from commit 1b6895927f293855e5bb437ad28f31da2c2cfe54)
4 years ago
Kevin Backhouse bf786f4cc6
Updates to make fuzzing work. 4 years ago
postscript-dev 2b8856dcea
Add SonyMisc1 (Tag 0x9403) makernote tags
Source: Exiftool (https://exiftool.org/TagNames/Sony.html)
4 years ago
Kevin Backhouse 033175e127
Don't deref end iterator. 4 years ago
Andrea Giudiceandrea 43fe7bbb98
Add Exif.Image.PageName tag (#1765)
* Add Exif.Image.PageName tag

* Add trailing punctuation mark to PageName and DocumentName tags description.

* Add XPosition and YPosition TIFF tags
4 years ago
Kevin Backhouse ff00771425 Better bounds checking in Jp2Image::printStructure
(cherry picked from commit 0fcdde80997913dde284ea98f06f9305d06cb160)
4 years ago
Kevin Backhouse c2b52119d4 Check that findKey didn't return end(). 4 years ago
Kevin Backhouse 98fb218475 Throw exception if lens info wasn't found. 4 years ago
Kevin Backhouse d30c95d07e fix incorrect loop condition (#1752) 4 years ago
Kevin Backhouse 5ab3f2b0c5 Defensive coding to avoid 0x80000000/0xFFFFFFFF FPE. 4 years ago
Kevin Backhouse 11a26fb0d4 Prevent divide-by-zero crash. 4 years ago
Kevin Backhouse 8c4d67ca50 Defensive coding to avoid 0x80000000/0xFFFFFFFF FPE. 4 years ago
norbertwg d5b7f99fbf Three tag descriptions corrected 4 years ago
Rosen Penev 37fea97dd3 clang-tidy: use override
Found with modernize-use-override

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev b84d8e9a44 clang-tidy: use auto
Found with modernize-use-auto

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 9210fb85f9 clang-tidy: pass by value
Found with modernize-pass-by-value

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Kevin Backhouse b16cd52b88 Replace sprintf with snprintf. 4 years ago
Rosen Penev 2fbf2e6b7c clang-tidy: remove dedundant initializer
Found with readability-redundant-member-init

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Kevin Backhouse a4c5bdac19 fix: stricter date parsing in value.cpp (#1720)
* Regression test for issue 1713

* Stricter date parsing.

* Fix test failure caused by stdout mismatch.

(cherry picked from commit ab58026cff0e5edebc026261e9dc4b7db05b802d)
4 years ago
mergify[bot] 1d64f482ff
fix: use vector::at() rather than operator[] (backport #1735) (#1741)
* fix: use vector::at() rather than operator[] (#1735)

* Regression test for https://github.com/Exiv2/exiv2/issues/1706

* Use vector::at() rather than operator[].

* Print to stderr when exception is caught and EXIV2_DEBUG_MESSAGES is enabled.

* Check that it prints "Bad value" for the date.

(cherry picked from commit f4d3adbf91e6dc4e34aee5bac7b7fd9e127a5c00)

# Conflicts:
#	src/value.cpp

* fix merge conflicts from mergify backport

Co-authored-by: Kevin Backhouse <kevinbackhouse@github.com>
Co-authored-by: Christoph Hasse <hassec@users.noreply.github.com>
4 years ago
Kevin Backhouse 2b84f4bd64
fix: zero initialize local variables. (#1743)
* Zero initialize local variables.

* Initialize xmpID_
4 years ago
Kevin Backhouse 3e099da7b7 Remove obsolete snprintf macros. 4 years ago
Christoph Hasse 2539e5dd7e fix: change duplicated Canon RF 100-500 2x into missing 1.4 teleconverter version 4 years ago
Christoph Hasse 704ee571de fix: allow for FX.Y syntax in aperture regex 4 years ago
Daniel Vogelbacher fa78ab3593 Use official Canon RF lens model names
The new RF line is named F2.8L instead of f/2.8L (for example).

This patch makes the model names identically to the official
Canon lens names and the same names exiftool uses.
4 years ago
Christoph Hasse 2f83b7e0f6
Merge pull request #1692 from Exiv2/hassec_canon_lens_test
New Canon Lens Identification + Automatic Test of all Lenses
4 years ago
andyrtr cfeceee416
add lens: Olympus M.ZUIKO DIGITAL ED 12-45mm F4.0 PRO (#1725)
* add lens ID for Olympus M.Zuiko Digital ED 12-45mm F4.0 Pro #1723

* add test for #1723 checking the Olympus M.Zuiko Digital ED 12-45mm F4.0 Pro recognized correctly
4 years ago
Matthias Kuhn 5aafb351e5 Fix building on ios 4 years ago
nulllinie 23dbf4f51a
correct identification for Tamron SP 24-70mm G2 A032 (#1691)
* correct identification for Tamron SP 24-70mm G2 A032 with LensType 0E (14)

Existing entry with LensType 4E is kept as it's needed as well
Added testcase for LensType 0E for Tamron_SP_24-70mm_F2.8_Di_VC_USD_G2
4 years ago
Christoph Hasse efb0af8506 fix: make casts explicit to please msvc 4 years ago
Christoph Hasse 7867343611 fix: prefer symbolic boolean operators so windows is happy 4 years ago
Christoph Hasse bdd8a386b5 feat: improve lens recognition of canon makernote
If multiple choices are possible they are now all reported. This
behaviour is now the same as it is in exiftool.

All lenses are tested in the new test_canon_lenses.py test
4 years ago
Christoph Hasse 907fe2369e fix: readd some previously removed lenses now that we plan to trea ambiguous lenses 4 years ago
Christoph Hasse 4ee8962d42 refactor!: use lensfun style nameing for lenses 4 years ago
Alexander Steffen 56f9979a4b Improve detection of Canon lenses with TC
Lenses with and without a TC may share the same lens ID. Prefer entries
that explicitly mention the TC.
4 years ago
Alexander Steffen 9962b88db3 Fix misdetection of Tamron SP AF 300mm as Canon EF 75-300mm
When searching for the Tamron lens, only the string "300mm" is searched in
the lens description, which also happens to be present for the Canon lens.
Since the Canon lens comes first in the list, it wins. Fix this issue by
prefixing the search string with a single space so it always has to match
the full focal length specification.
4 years ago
Alexander Steffen 477150f067 Fix rounding error in fnumber calculation
The mathematical calculation of fnumbers does not always match the expected
values: For example for f/3.5 the precise mathematical value is 3.564...,
which gets rounded to 3.6. Fix this special case by returning a value
closer to the expected value.
4 years ago
Alexander Steffen 0d030eefdf Remove undetectable lenses
Lenses that have the exact same ID, focal length and aperture as some other
lens that comes earlier in the list (and thus always wins):
* 137, "Tamron SP 17-50mm f/2.8 XR Di II VC"
* 137, "Tamron SP 24-70mm f/2.8 Di VC USD"
* 161, "Sigma 28-70mm f/2.8 EX"
* 173, "Sigma 180mm EX HSM Macro f/3.5"
* 180, "Zeiss Milvus 50mm f/1.4"
* 183, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"
* 254, "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 F004"
* 254, "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 F017"

Lenses that share their IDs with other lenses, but have no or an
unsupported focal length:
* 33, "Voigtlander or Carl Zeiss Lens"
* 131, "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye"
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
Christoph Hasse 758dd6bbc6 refactor!: remove free() function from DataBuf to avoid potential problems, see #1542 4 years ago
Rosen Penev 2c57f214c5 clang-tidy: use nullptr
Found with modernize-use-nullptr

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 86c71ae6c3 clang-tidy: avoid global non const variables
Found with cppcoreguidelines-avoid-non-const-global-variables

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev d1e116a8ef remove some pointless std::set
Partially found by gcc's -fanalyzer

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 4c4f8da338 remove initializers
these were moved outside the constructor body.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev e5894d71e1 default con/destructors in headers
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev ce47de67b5 use auto in template
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev c44c289d76 clang-tidy: fix ending namespace comnments
Found with llvm-namespace-comment

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev a74bceacb0 clang-tidy: remove pointless return
Found with readability-redundant-control-flow

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 743da1a564 clang-tidy: use C++ casting
Found with google-readability-casting

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 8dbc699858 clang-tidy: add missing explicit
Found with google-explicit-constructor

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev ff39473c18 clang-tidy: convert to static
Found with readability-convert-member-functions-to-static

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 6da49fd29b more constexpr
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev cdbee3c26c clang-tidy: init in member initializer
Found with cppcoreguidelines-prefer-member-initializer

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 036af68a71 remove pointless constructors
Replaced with Uniform initialization. Allows constexpr usage.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 8564d0b394 clang-tidy: pass by value
Found with modernize-pass-by-value

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev f9d394adf0 clang-tidy: run through performance checks
Found with performance*

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev b8712188bb clang-tidy: use auto
Found with modernize-use-auto

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 20dfab8036 manual for range loop conversions
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 8e52032ee0 clang-tidy: range loop conversions
Found with: modernize-loop-convert

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev c73dfa0106 clang-tidy: use uppercase numeric literals
Found with readability-uppercase-literal-suffix

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 8e178e912e replace {} initialization with fill
Old compilers don't implement {} correctly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev fdf9d3799c clang-tidy: don't use else after return
Found with llvm-else-after-return

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 4aa5566cf6 clang-tidy: make several member functions const
Found with readability-make-member-function-const

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 24a8139233 clang-tidy: fix badly indented if
Found with readability-misleading-indentation

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 1b9b77c51f clang-tidy: add ending namespace comments
Found with google-readability-namespace-comments

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev bf290e84e5 fix compilation with EXIV2_DEBUG_MESSAGES
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Miloš Komarčević 3416b631c5
Add Sony ARW compression to dict 4 years ago
Rosen Penev fddb035106 clang-tidy: remove pointless const
Found with readability-avoid-const-params-in-decls

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 80595f8468 clang-tidy: remove duplicate public
Found with readability-redundant-access-specifiers

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Kevin Backhouse ca66136092 Use readOrThrow to check error conditions of iIo.read().
(cherry picked from commit 0f9eb74c44c908e170a64cab590949d53749af8e)
4 years ago
Rosen Penev 5dc4292b40 fix bad for range loop
This loop is supposed to break when it encounters a match.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago
Rosen Penev 091fd77885 clang-tidy: remove redundant member init
Found with readability-redundant-member-init

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years ago