Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update canon tags #1628

Closed
wants to merge 650 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
650 commits
Select commit Hold shift + click to select a range
9ff72e5
Make offset=0 the default parameter.
kevinbackhouse Aug 30, 2021
9c4f9c7
Regression test for https://github.com/Exiv2/exiv2/issues/1887
kevinbackhouse Sep 1, 2021
bd211a9
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detai…
kevinbackhouse Sep 2, 2021
7caf447
Merge pull request #1888 from kevinbackhouse/FixIssue1887
kevinbackhouse Sep 2, 2021
e1cbe3e
Update SECURITY.md
clanmills Sep 4, 2021
5f2cbdf
Merge pull request #1892 from Exiv2/clanmills-patch-1
clanmills Sep 5, 2021
7a6acc4
Standardize on conan 1.39.0
kevinbackhouse Sep 9, 2021
8e64f4c
Merge pull request #1898 from kevinbackhouse/DowngradeConan
kevinbackhouse Sep 9, 2021
e1b9538
Add doc to release build.
kevinbackhouse Aug 8, 2021
8a08e14
Merge pull request #1899 from kevinbackhouse/BuildDoc
kevinbackhouse Sep 9, 2021
e71b99b
Merge pull request #1886 from kevinbackhouse/private-pData
kevinbackhouse Sep 9, 2021
1b53899
Merge pull request #1806 from kevinbackhouse/FuzzMore
kevinbackhouse Sep 9, 2021
7a54ec4
Update manpage
postscript-dev Sep 12, 2021
9b79b37
Remove unused constructor that was causing a build failure in OSS-Fuzz.
kevinbackhouse Sep 12, 2021
4f12680
Regression test for https://github.com/Exiv2/exiv2/issues/1901
kevinbackhouse Sep 12, 2021
4d55cb6
Comment out bogus code.
kevinbackhouse Sep 12, 2021
d49c4b6
Update manpage by converting to markdown
postscript-dev Sep 12, 2021
395389a
Add more checks to prevent integer overflow.
kevinbackhouse Sep 12, 2021
decfda4
Update manpage
postscript-dev Sep 12, 2021
bb9ff53
Throw an exception on integer overflow.
kevinbackhouse Sep 13, 2021
5dbdff6
Update manpage
postscript-dev Sep 15, 2021
795cfe9
Update exiv2 program, --help and usage
postscript-dev Sep 15, 2021
e1e7ddd
Fix test failure.
kevinbackhouse Sep 15, 2021
982d260
Merge pull request #5 from kevinbackhouse/update_exiv2_manpage
postscript-dev Sep 15, 2021
774e662
Merge pull request #1900 from kevinbackhouse/FixOSSFuzzBuildFailure
kevinbackhouse Sep 15, 2021
c4e7383
Add missing MpfInfo group to `taglist.exe Exif`
postscript-dev Sep 16, 2021
098283c
Merge branch 'Exiv2:main' into update_website_docs
postscript-dev Sep 16, 2021
e07451a
Add Python test for `taglist` program
postscript-dev Sep 16, 2021
486bf32
Merge branch 'update_website_docs' of https://github.com/postscript-d…
postscript-dev Sep 16, 2021
bb9fc40
Add missing Canon/Nikon/Samsung/Sony Groups to docs
postscript-dev Sep 16, 2021
ec58aec
Add custom update-pot target
cjwatson Sep 17, 2021
f643d9b
Annotate some strings with xgettext:no-c-format
cjwatson Sep 17, 2021
9f1e3e3
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detai…
kevinbackhouse Sep 17, 2021
1a58f7b
Merge pull request #1908 from cjwatson/properties-no-c-format
kevinbackhouse Sep 18, 2021
7cb65d1
Merge pull request #1872 from postscript-dev/update_exiv2_manpage
kevinbackhouse Sep 18, 2021
37388c3
Regression test for https://github.com/Exiv2/exiv2/issues/1912
kevinbackhouse Sep 18, 2021
d92b0a6
Merge pull request #1910 from kevinbackhouse/PentaxQuadraticPrint
kevinbackhouse Sep 19, 2021
7700f90
Pass -fstack-protector-strong to linker
evanmiller Sep 19, 2021
801e201
Merge pull request #1902 from kevinbackhouse/FixIssue1901
kevinbackhouse Sep 19, 2021
66b40d8
Merge pull request #1915 from evanmiller/patch-1
kevinbackhouse Sep 20, 2021
04f4624
Explicitly test for libproc.h (#1916)
evanmiller Sep 20, 2021
cd4316c
Do the calculation in floating point to avoid integer overflow.
kevinbackhouse Sep 20, 2021
be29681
Merge pull request #1913 from kevinbackhouse/FixIssue1912
kevinbackhouse Sep 21, 2021
7d2eb4a
Merge pull request #1905 from postscript-dev/update_website_docs
kevinbackhouse Sep 22, 2021
8a1e949
fix out of range access, minor performance improvement
rabauke Sep 22, 2021
90434bb
Regression test for: https://github.com/Exiv2/exiv2/issues/1920
kevinbackhouse Sep 22, 2021
a71bb64
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detai…
kevinbackhouse Sep 22, 2021
fc07f18
Add CodeQL query to detect variants of issue #1920.
kevinbackhouse Sep 23, 2021
7ace962
Add SonyMisc(2b|3c) Groups in TIFF files
postscript-dev Sep 23, 2021
827f31a
Add test for SonyMisc(2b|3c) Groups in TIFF files
postscript-dev Sep 23, 2021
2ec128f
Add regression test to https://github.com/Exiv2/exiv2/pull/1918
kevinbackhouse Sep 23, 2021
78fcfff
Update copyright and bug-address
kevinbackhouse Sep 23, 2021
38e836d
Merge pull request #1 from kevinbackhouse/update-pot-target
cjwatson Sep 23, 2021
d9294eb
Merge pull request #1 from kevinbackhouse/my_fix_01
rabauke Sep 24, 2021
41543e9
Merge pull request #1907 from cjwatson/update-pot-target
kevinbackhouse Sep 24, 2021
e2f3d6d
Merge pull request #1918 from rabauke/my_fix_01
kevinbackhouse Sep 24, 2021
54ee165
Add conditions to 2 Sony temperature tags
postscript-dev Sep 24, 2021
5325056
Add Python tests for 2 Sony temperature tags
postscript-dev Sep 24, 2021
8b8067a
Add second test to improve code coverage.
kevinbackhouse Sep 25, 2021
eb85d4c
Add third test to improve code coverage.
kevinbackhouse Sep 25, 2021
b27aa0b
Merge pull request #1922 from postscript-dev/fix_sony_tags
kevinbackhouse Sep 25, 2021
482cb2d
Clarify ownership model of CiffComponent::pData_
kevinbackhouse Sep 26, 2021
862e619
Fix markdown manpage formatting
postscript-dev Sep 18, 2021
9cbbd12
Move exiv2.md - easier to find
postscript-dev Sep 21, 2021
cb1b632
Update markdown files with changes to manpage
postscript-dev Sep 21, 2021
2004aeb
Update manpage URLs
postscript-dev Sep 21, 2021
0da5603
Fix long code block lines in exiv2.md
postscript-dev Sep 23, 2021
b65dac3
Add RETURN VALUES section to exiv2.md
postscript-dev Sep 23, 2021
e6f9492
Fix spelling/formatting in exiv2.md
postscript-dev Sep 23, 2021
342eeb4
Fix formatting in `exiv2.md`
postscript-dev Sep 23, 2021
5bec024
Update: Minor formatting/text in `exiv2.md`
postscript-dev Sep 26, 2021
02d4073
Update canonmn_int.cpp
John55h Sep 27, 2021
7bd1935
Merge pull request #1932 from John55h/main
kevinbackhouse Sep 29, 2021
887acd0
Merge pull request #1926 from postscript-dev/fix_sony_temperature_tags
kevinbackhouse Sep 29, 2021
e6ce137
Add workaround for conan outage: https://github.com/conan-io/conan/is…
kevinbackhouse Oct 1, 2021
6de6815
Merge pull request #1940 from kevinbackhouse/ConanFix
kevinbackhouse Oct 3, 2021
83b9944
We only need to extract one byte.
kevinbackhouse Oct 4, 2021
be5a01f
Merge pull request #1921 from kevinbackhouse/FixIssue1920
kevinbackhouse Oct 4, 2021
0548a6c
Fix Conan on macOS
kevinbackhouse Oct 4, 2021
458a60b
Merge pull request #1942 from kevinbackhouse/ConanFixMacOS
kevinbackhouse Oct 4, 2021
c9638bb
Fix Conan on macOS
kevinbackhouse Oct 4, 2021
a0cff12
Use same Conan version on macOS as on other platforms.
kevinbackhouse Oct 4, 2021
a6480f9
Hide "static constexpr auto" from SWIG
jim-easterbrook Oct 5, 2021
2b040e9
Merge pull request #1943 from kevinbackhouse/ConanFixMacOS
kevinbackhouse Oct 5, 2021
4205e03
Extending Nikon3.ColorBalance version coverage
kmilos Oct 4, 2021
2074f82
Fold into common 02xx versions
kmilos Oct 5, 2021
89253de
Merge pull request #1947 from jim-easterbrook/swig_compat
kevinbackhouse Oct 9, 2021
33edcb2
Merge pull request #1914 from postscript-dev/fix_markdown_manpage
kevinbackhouse Oct 9, 2021
937264b
Merge pull request #1927 from kevinbackhouse/ImproveCodeCoverage
kevinbackhouse Oct 9, 2021
5fdd9da
Use =default.
kevinbackhouse Oct 9, 2021
3b0d827
More =default changes.
kevinbackhouse Oct 10, 2021
d874f3d
Regression test for https://github.com/Exiv2/exiv2/issues/1954
kevinbackhouse Oct 10, 2021
4901c5d
Merge pull request #1930 from kevinbackhouse/CiffComponent-pData-owne…
kevinbackhouse Oct 10, 2021
81cfc16
Use std::move to transfer ownership of DataBufs.
kevinbackhouse Oct 10, 2021
94ea0c6
Delete the copy assignment operator to avoid accidental copying.
kevinbackhouse Oct 11, 2021
d2bdf68
Revert "Fix for https://github.com/Exiv2/exiv2/issues/1856"
kevinbackhouse Oct 14, 2021
cf6566b
Fix indentation
kevinbackhouse Oct 15, 2021
5c701e5
Merge pull request #1962 from kevinbackhouse/Revert1857
kevinbackhouse Oct 15, 2021
aaf5843
Merge pull request #1956 from kevinbackhouse/DataBufMoveCnstr
kevinbackhouse Oct 15, 2021
c07bbfc
Fix doc description of Image::iccProfileDefined()
postscript-dev Oct 15, 2021
71744d5
Merge pull request #1944 from Exiv2/nikon_colorbalance
kevinbackhouse Oct 15, 2021
4bc4757
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detai…
kevinbackhouse Oct 15, 2021
d23ef9d
Merge pull request #1955 from kevinbackhouse/FixIssue1954
kevinbackhouse Oct 16, 2021
bbfbcb6
Merge pull request #1964 from postscript-dev/fix_iccProfile_docs
kevinbackhouse Oct 17, 2021
b385f2d
Canon cr3 previews (#1958)
dhoulder Oct 17, 2021
4e587fa
Performance boost: don't read boxes we're not interested in
dhoulder Oct 19, 2021
2d80891
Only include expat.h when XMP is enabled. (#1973)
mergify[bot] Oct 20, 2021
0ae85cc
Merge pull request #1974 from dhoulder/skip-isobmff-boxes
kevinbackhouse Oct 20, 2021
d91cb9d
Try a newer version of Conan.
kevinbackhouse Oct 20, 2021
3db71f6
Merge pull request #1976 from kevinbackhouse/ConanVersionMacOS
kevinbackhouse Oct 20, 2021
40e5021
Limit CR3 previews to JPEG only
kmilos Oct 20, 2021
31a2467
Add exiv2 extract thumb to stdout (#1934): src
postscript-dev Oct 20, 2021
4798c6b
Add exiv2 extract thumb to stdout (#1934): test
postscript-dev Oct 20, 2021
8b7d872
Expose unsupported CR3 previews as binary
kmilos Oct 20, 2021
c5101e0
Merge pull request #1978 from Exiv2/cr3_previews_version_check
kmilos Oct 21, 2021
44542a9
Add readOrThrow and seekOrThrow to BasicIo.
kevinbackhouse Oct 17, 2021
68473d9
Remove static functions readOrThrow and seekOrThrow.
kevinbackhouse Oct 17, 2021
e87e440
Remove Conan from MacOS build.
kevinbackhouse Oct 24, 2021
76a9377
Merge pull request #1986 from kevinbackhouse/MacOS-no-Conan
kevinbackhouse Oct 25, 2021
118a1de
Add issue templates from `old-master` branch
postscript-dev Oct 26, 2021
ab90d43
Merge pull request #1979 from postscript-dev/fix_exiv2_sample_thumb_s…
kevinbackhouse Oct 26, 2021
befb890
Remove opensuse/tumbleweed, because the docker image is broken.
kevinbackhouse Oct 24, 2021
f09ea6a
Update Exiv2 GitHub issue templates
postscript-dev Oct 26, 2021
3a1a9db
Fix label: `ISSUE_TEMPLATE/feature_request.md`
postscript-dev Oct 26, 2021
a97d747
Merge pull request #1988 from postscript-dev/add_git_templates
kmilos Oct 27, 2021
5dca23b
Merge pull request #1987 from kevinbackhouse/RemoveTumbleweed
kevinbackhouse Oct 27, 2021
eb78a2f
Add NikonFl7 makernotes group source code
postscript-dev Oct 14, 2021
eb134d1
Add testing for NikonFl7 makernotes group
postscript-dev Oct 14, 2021
8cd7dba
Add documentation for NikonFl7 makernotes group
postscript-dev Oct 14, 2021
f0f3c7e
Fix compile issues for NikonFl7 makernotes group
postscript-dev Oct 15, 2021
f23d965
Add limits check: Exif.NikonFl7.FlashCompensation
postscript-dev Oct 17, 2021
8ebf10f
Fix condition in Exif.NikonFl7.FlashCompensation
postscript-dev Oct 17, 2021
b3ca98c
Fix Exif.NikonFl7.FlashCompensation pretty print
postscript-dev Nov 2, 2021
277b187
Fix Exif.NikonFl7.FlashGroupBCControlData output
postscript-dev Nov 2, 2021
bd676be
Fix `exiv2 -pR` for Sony images (#1805)
postscript-dev Sep 26, 2021
1535357
Regression test for #1805
postscript-dev Sep 26, 2021
b95e19e
libcurl is now optional. Updated to the latest versions of libcurl an…
LibreShawn Nov 3, 2021
562b10f
Fix Exif.NikonFl7.FlashCompensation
postscript-dev Nov 3, 2021
7c8e6fc
Merge pull request #1963 from postscript-dev/add_FlashInfo0107_makern…
kevinbackhouse Nov 7, 2021
1ae9f42
Add camera models for NikonFl3 makernotes group (#1994)
postscript-dev Nov 8, 2021
fde8ed0
Merge pull request #1967 from kevinbackhouse/ReadOrThrow
kevinbackhouse Nov 8, 2021
02ce7e9
Restore modified tags after TZ manipulation
jim-easterbrook Nov 15, 2021
9c294ef
Fix exiv2: verbose extract to stdout (see #1934)
postscript-dev Nov 16, 2021
5efb175
Add tests for pr #2000
postscript-dev Nov 16, 2021
985e963
Update documentation for pr #2000
postscript-dev Nov 16, 2021
797f86c
Fix minor whitespace formatting
postscript-dev Nov 17, 2021
6758e72
Merge branch 'main' into fix_exiv2_-pR
kevinbackhouse Nov 24, 2021
5444fce
Regression test for https://github.com/Exiv2/exiv2/issues/2006
kevinbackhouse Nov 28, 2021
35f48ae
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detai…
kevinbackhouse Nov 28, 2021
da3b36f
Add test files for PR 1999 / issue 1998
jim-easterbrook Dec 1, 2021
2e2dd88
Use \" instead of ' for exiv2 command string
jim-easterbrook Dec 1, 2021
a1ad29e
Treat Exif.Sony1.PreviewImage as undefined tag.
kevinbackhouse Dec 5, 2021
889e1c6
Merge pull request #2000 from postscript-dev/fix_version_param_in_exiv2
kevinbackhouse Dec 5, 2021
0a1fa49
Merge pull request #1999 from jim-easterbrook/bug_1998
kevinbackhouse Dec 5, 2021
aebb3fb
Merge pull request #2015 from kevinbackhouse/SonyPreviewUndefined
kevinbackhouse Dec 5, 2021
65fad9d
Merge pull request #2007 from kevinbackhouse/FixIssue2006
kevinbackhouse Dec 6, 2021
1b53303
ci: upgrade conan version on github actions (#2021)
piponazo Dec 10, 2021
fd84471
Add more DNG 1.6 tags (#2023)
kmilos Dec 11, 2021
4aa701f
PoC image file for https://github.com/Exiv2/exiv2/issues/2027
kevinbackhouse Dec 13, 2021
e34eacc
Use memmove, rather than memcpy, because memory regions might overlap.
kevinbackhouse Dec 13, 2021
13a2cf3
fix_1416_iptc_DateCreated (#1547)
clanmills Dec 14, 2021
29cc981
Merge pull request #2028 from kevinbackhouse/FixIssue2027
kevinbackhouse Dec 14, 2021
122fb95
Updating documentation to respect ctest.
clanmills Dec 17, 2021
4d44f9c
Forward CI changes
kmilos Dec 17, 2021
82adcb1
Do not use exact string match for errno output
kmilos Dec 17, 2021
5693979
Restored test lensTest. Minimized differences between main/README.md…
clanmills Dec 19, 2021
82371c4
Adding version_test.py.
clanmills Dec 19, 2021
e32d3fc
Fixes following review.
clanmills Dec 20, 2021
23c5100
Improve config file platform test
kmilos Dec 18, 2021
f3393f8
Fixes following review.
clanmills Dec 20, 2021
10661d6
Fix `$ $` typo. Well spotted, @kmilos.
clanmills Dec 20, 2021
41ae517
Merge pull request #2034 from Exiv2/fix_README_ctest_main
clanmills Dec 20, 2021
d508e09
Merge pull request #2035 from Exiv2/ci_forward_main
clanmills Dec 20, 2021
bea66d6
Clarify policy on when a bug is considered a security issue (#2038)
kevinbackhouse Dec 21, 2021
891f58a
Fix bug in loop. It wasn't iterating over the elements of dateStrings…
kevinbackhouse Dec 20, 2021
c28e501
Merge pull request #2039 from Exiv2/mergify/bp/main/pr-2037
kevinbackhouse Dec 22, 2021
9f3240c
Delete TiffEntryBase::isMalloced_ field and use a std::shared_ptr ins…
kevinbackhouse Dec 24, 2021
29f7d0c
Remove DataBuf::release() which is no longer used.
kevinbackhouse Dec 24, 2021
b6a4fd1
Add storage parameter to setData.
kevinbackhouse Dec 24, 2021
9268279
Add comments.
kevinbackhouse Dec 24, 2021
b52b6db
Output of -PV was not suitable for inputting to -m-, key was missing.…
facundofc Dec 29, 2021
cf8f791
Update test file location in manpage
postscript-dev Jan 1, 2022
a094dde
Merge pull request #2040 from kevinbackhouse/TiffEntryBaseStorage
kevinbackhouse Jan 2, 2022
8135665
Revisiting cmake code for generating coverage reports (#2047)
piponazo Jan 6, 2022
d188898
Rename GHA workflows for having more intuitive navigation
piponazo Jan 6, 2022
2493e55
Merge pull request #2049 from Exiv2/main_gha_names
clanmills Jan 6, 2022
c898f56
cmake: Add missing source file
piponazo Jan 6, 2022
ad948e8
cmake: default c++ standard => 14
piponazo Jan 6, 2022
c19425f
Add unit tests for PngChunk::keyTXTChunk
piponazo Jan 6, 2022
061df50
keyTXTChunk improvement
piponazo Jan 6, 2022
b96f5af
Remove dead code
piponazo Jan 6, 2022
ceae868
Initialize uninitialized variables
piponazo Jan 6, 2022
ec21f65
Replace magicValue with constant variable
piponazo Jan 6, 2022
ddf5645
Add new tests in PngChunk & PngImage for increasing coverage
piponazo Jan 6, 2022
240a724
Clang-format in pngchunk_int.cpp
piponazo Jan 7, 2022
825c0c7
Check array index before inspecting it
piponazo Jan 7, 2022
a098ab6
Merge pull request #2043 from postscript-dev/update_test_file_URLs_in…
postscript-dev Jan 9, 2022
629442d
Merge pull request #1929 from postscript-dev/fix_exiv2_-pR
postscript-dev Jan 9, 2022
b0318c3
Upgrade C++ standard to c++17 (#2052)
piponazo Jan 9, 2022
fe83240
Update XMP IPTC tags to 2021.1 standard
postscript-dev Jan 10, 2022
0847f92
Add Python test for XMP IPTC 2021.1 tags
postscript-dev Jan 10, 2022
1a88324
Update tag docs for XMP IPTC 2021.1 tags
postscript-dev Jan 10, 2022
9dfbca4
Remove Windows newlines for `cmp` Python test
postscript-dev Jan 10, 2022
0afefa1
Update pr#2053 Python test for codeconv coverage
postscript-dev Jan 10, 2022
f7becf0
Remove Windows newlines for `cmp` Python test
postscript-dev Jan 10, 2022
6c59437
Add IPTC 2021.1 source comments for pr#2053
postscript-dev Jan 11, 2022
da320f3
Remove experimental code from pr#2053
postscript-dev Jan 11, 2022
55712d4
Merge pull request #2053 from postscript-dev/update_XMP_tags_for_IPTC…
postscript-dev Jan 13, 2022
5e9e31f
Upgrade centos:8 to centos-stream (#2066)
piponazo Feb 3, 2022
6e1dd03
work on canon tags
alexvanderberkel May 10, 2021
433e3e0
second rund
alexvanderberkel May 10, 2021
9a062b8
update tags ID
alexvanderberkel May 11, 2021
57f9b2a
update canonrf tags, new lenses
alexvanderberkel May 17, 2021
3724957
update to tags
alexvanderberkel May 19, 2021
07b8173
Decoding of Canon HDRInfo tag
hassec May 19, 2021
92f464a
Adding Ambience Selection to tag list
alexvanderberkel May 19, 2021
a48cd83
Adding tag Canon AFMicroAdj
alexvanderberkel May 19, 2021
eb4dcfe
Canon MultiExposure tag added
alexvanderberkel May 19, 2021
627ecd0
Adding Canon Lighting Optimization Tag
alexvanderberkel May 19, 2021
a44029b
Adding of Canon Vignetting Correction Tag 2
alexvanderberkel May 19, 2021
71e836c
canon filter options
alexvanderberkel May 19, 2021
90b0896
Adding LensSerialNumber Tag
alexvanderberkel May 19, 2021
939d22f
Adding Canon AF Config Tag
alexvanderberkel May 19, 2021
8978357
Adding Canon RawBurst Tag
alexvanderberkel May 19, 2021
042f55a
Canon AF Info 2 Tag
alexvanderberkel May 19, 2021
29c54e2
wrong brackets fixed
alexvanderberkel Feb 3, 2022
e40c13f
Merge branch 'update_canon_tags' of
alexvanderberkel Feb 3, 2022
97380fe
fix wrong brackets
alexvanderberkel Feb 3, 2022
2a1b6ac
fix of tests case test_issue_981.py
alexvanderberkel Feb 3, 2022
d9c08c6
fix of test_issue_1151.py
alexvanderberkel Feb 3, 2022
1fb35c9
fix test_issue_1122.py
alexvanderberkel Feb 3, 2022
02366ba
CanonFlashinfo added
alexvanderberkel Feb 7, 2022
739ed8b
ExposureCompensation added
alexvanderberkel Feb 7, 2022
8d93a5f
Exif.Canon.CanonFlashInfo
alexvanderberkel Feb 7, 2022
90db13e
Exif.CanonCs.SpotMeteringMode
alexvanderberkel Feb 7, 2022
46da625
Exif.CanonCs.PhotoEffect
alexvanderberkel Feb 7, 2022
332539d
Exif.Canon.CanonFlashInfo
alexvanderberkel Feb 7, 2022
4e0970d
Exif.CanonSi.NDFilter
alexvanderberkel Feb 7, 2022
8a5e0d1
Exif.CanonSi.SelfTimer2
alexvanderberkel Feb 7, 2022
705c5a8
Exif.Canon.CanonFlashInfo
alexvanderberkel Feb 7, 2022
69932b4
Exif.CanonSi.FlashOutput
alexvanderberkel Feb 7, 2022
4c4af10
Exif.CanonSi.NDFilter
alexvanderberkel Feb 7, 2022
2e03320
fix test cases
alexvanderberkel Feb 7, 2022
aece7b9
fix test issues
alexvanderberkel Feb 7, 2022
a09ba0c
adding exposurecompensation
alexvanderberkel Feb 8, 2022
0349546
OpticalZoomCode added
alexvanderberkel Feb 8, 2022
83e26bc
fix typo Optical Zoom Code
alexvanderberkel Feb 8, 2022
794f22b
adding OpticalZoomCode
alexvanderberkel Feb 8, 2022
a1a15bd
AEB Bracket Value added
alexvanderberkel Feb 8, 2022
59db674
controlmode added
alexvanderberkel Feb 8, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

##### **Describe the bug**
A clear and concise description of the bug.

##### **To Reproduce**
Steps to reproduce the behavior:
1. Provide the file with which you observed the issue (commonly named PoC)
2. List the exact commands/functions to reproduce the issue and include any related output
3. Mention the branch/commit in which you observed the issue (e.g., `main`, `0.27-maintenance`, `commit 9f721b40`)

##### **Expected behavior**
A short description of what you expected to happen.

##### **Desktop (please complete the following information):**
- OS and version: (e.g., Linux (Fedora 34), macOS 12, Windows 11)
- Compiler and version: (e.g., Gcc 11.2, Clang 13.0.0, MSVC 2019)
- Compilation mode and/or compiler flags:

##### **Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: request
assignees: ''

---

##### **Is your feature request related to a problem?**
A clear and concise description of the problem (e.g., I'm always frustrated when [...]; Exiv2 does not support XXX format [...])

##### **Describe the solution you would like**
A short description of what you want to happen.

##### **Describe alternatives you have considered**
A simple explanation of any alternative solutions or features you have considered.

##### **Additional context**
Add any other information about the feature request here (e.g. screenshots, URLs).
3 changes: 3 additions & 0 deletions .github/codeql-queries/exiv2-code-scanning.qls
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Reusing existing QL Pack
- import: codeql-suites/cpp-code-scanning.qls
from: codeql-cpp
23 changes: 23 additions & 0 deletions .github/codeql-queries/exiv2-cpp-queries/null_iterator_deref.qhelp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!DOCTYPE qhelp SYSTEM "qhelp.dtd">
<qhelp>
<overview>
<p>
A C++ iterator is a lot like a C pointer: if you dereference it without
first checking that it's valid then it can cause a crash.
</p>
</overview>
<recommendation>
<p>
Always check that the iterator is valid before derefencing it.
</p>
</recommendation>
<example>
<p>
<a href="https://github.com/Exiv2/exiv2/issues/1763">Issue 1763</a> was caused by
<a href="https://github.com/Exiv2/exiv2/blob/9b3ed3f9564b4ea51b43c78671435bde6b862e08/src/canonmn_int.cpp#L2755">this
dereference</a> of the iterator <tt>pos</tt>.
The bug was <a href="https://github.com/Exiv2/exiv2/pull/1767">fixed</a> by not dereferencing
<tt>pos</tt> if <tt>pos == metadata->end()</tt>.
</p>
</example>
</qhelp>
47 changes: 47 additions & 0 deletions .github/codeql-queries/exiv2-cpp-queries/null_iterator_deref.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/**
* @name NULL iterator deref
* @description Dereferencing an iterator without checking that it's valid could cause a crash.
* @kind problem
* @problem.severity warning
* @id cpp/null-iterator-deref
* @tags security
* external/cwe/cwe-476
*/

import cpp
import semmle.code.cpp.controlflow.Guards
import semmle.code.cpp.dataflow.DataFlow

// Holds if `cond` is a condition like `use == table.end()`.
// `eq_is_true` is `true` for `==`, `false` for '!=`.
// Note: the `==` is actually an overloaded `operator==`.
predicate end_condition(GuardCondition cond, Expr use, FunctionCall endCall, boolean eq_is_true) {
exists(FunctionCall eq |
exists(string opName | eq.getTarget().getName() = opName |
opName = "operator==" and eq_is_true = true
or
opName = "operator!=" and eq_is_true = false
) and
DataFlow::localExprFlow(use, eq.getAnArgument()) and
DataFlow::localExprFlow(endCall, eq.getAnArgument()) and
endCall.getTarget().getName() = "end" and
DataFlow::localExprFlow(eq, cond)
)
}

from FunctionCall call, Expr use
where
call.getTarget().getName() = "findKey" and
DataFlow::localExprFlow(call, use) and
use != call and
not use.(AssignExpr).getRValue() = call and
not end_condition(_, use, _, _) and
not exists(
Expr cond_use, FunctionCall endCall, GuardCondition cond, BasicBlock block, boolean branch
|
end_condition(cond, cond_use, endCall, branch) and
DataFlow::localExprFlow(call, cond_use) and
cond.controls(block, branch.booleanNot()) and
block.contains(use)
)
select call, "Iterator returned by findKey might cause a null deref $@.", use, "here"
4 changes: 4 additions & 0 deletions .github/codeql-queries/exiv2-cpp-queries/qlpack.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
name: exiv2-cpp-queries
version: 0.0.0
libraryPathDependencies: codeql-cpp
suites: exiv2-cpp-suite
24 changes: 24 additions & 0 deletions .github/codeql-queries/exiv2-cpp-queries/signed_shift.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
* @name Signed shift
* @description Shifting a negative number is undefined behavior,
* so it is risky to shift a signed number.
* @kind problem
* @problem.severity warning
* @id cpp/signed-shift
* @tags security
* external/cwe/cwe-758
*/

// See the "Bitwise shift operators" section here:
// https://en.cppreference.com/w/cpp/language/operator_arithmetic
import cpp
import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis

from BinaryBitwiseOperation shift, Expr lhs
where
(shift instanceof LShiftExpr or shift instanceof RShiftExpr) and
lhs = shift.getLeftOperand().getFullyConverted() and
lowerBound(lhs) < 0
select shift,
"This signed shift could cause undefined behavior if the value is negative. Type of lhs: " +
lhs.getType().toString()
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!DOCTYPE qhelp SYSTEM "qhelp.dtd">
<qhelp>
<overview>
<p>
The <a href="https://en.cppreference.com/w/cpp/container/vector/operator_at"><tt>operator[]</tt></a> method of <a href="https://en.cppreference.com/w/cpp/container/vector"><tt>std::vector</tt></a> does not do any bounds checking on the index. It is safer to use the <a href="https://en.cppreference.com/w/cpp/container/vector/at"><tt>at()</tt></a> method, which does do bounds checking.
</p>
</overview>
<recommendation>
<p>
Use the <a href="https://en.cppreference.com/w/cpp/container/vector/at"><tt>at()</tt></a> method, rather than <a href="https://en.cppreference.com/w/cpp/container/vector/operator_at"><tt>operator[]</tt></a>.
</p>
<p>
Some uses of <a href="https://en.cppreference.com/w/cpp/container/vector/operator_at"><tt>operator[]</tt></a> are safe because they are protected by a bounds check. The query recognises the following safe coding patterns:
</p>
<ul>
<li><tt>if (!x.empty()) { ...x[0]... }</tt></li>
<li><tt>if (x.length()) { ...x[0]... }</tt></li>
<li><tt>if (x.size() > 2) { ...x[2]... }</tt></li>
<li><tt>if (x.size() == 2) { ...x[1]... }</tt></li>
<li><tt>if (x.size() != 0) { ...x[0]... }</tt></li>
<li><tt>if (i < x.size()) { ... x[i] ... }</tt></li>
<li><tt>if (!x.empty()) { ... x[x.size() - 1] ... }</tt></li>
</ul>
</recommendation>
<example>
<p>
<a href="https://github.com/Exiv2/exiv2/issues/1706">#1706</a> was caused by a lack of bounds-checking on <a href="https://github.com/Exiv2/exiv2/blob/15098f4ef50cc721ad0018218acab2ff06e60beb/include/exiv2/value.hpp#L1639">this array access</a>. The bug was <a href="https://github.com/Exiv2/exiv2/pull/1735">fixed</a> calling the <a href="https://en.cppreference.com/w/cpp/container/vector/at"><tt>at()</tt></a> method instead.
</p>
</example>
</qhelp>
181 changes: 181 additions & 0 deletions .github/codeql-queries/exiv2-cpp-queries/unsafe_vector_access.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
/**
* @name Unsafe vector access
* @description std::vector::operator[] does not do any runtime
* bounds-checking, so it is safer to use std::vector::at()
* @kind problem
* @problem.severity warning
* @id cpp/unsafe-vector-access
* @tags security
* external/cwe/cwe-125
*/

import cpp
import semmle.code.cpp.controlflow.Guards
import semmle.code.cpp.dataflow.DataFlow
import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
import semmle.code.cpp.rangeanalysis.RangeAnalysisUtils
import semmle.code.cpp.valuenumbering.GlobalValueNumbering
import semmle.code.cpp.valuenumbering.HashCons

// A call to `operator[]`.
class ArrayIndexCall extends FunctionCall {
ClassTemplateInstantiation ti;
TemplateClass tc;

ArrayIndexCall() {
this.getTarget().getName() = "operator[]" and
ti = this.getQualifier().getType().getUnspecifiedType() and
tc = ti.getTemplate() and
tc.getSimpleName() != "map" and
tc.getSimpleName() != "match_results"
}

ClassTemplateInstantiation getClassTemplateInstantiation() { result = ti }

TemplateClass getTemplateClass() { result = tc }
}

// A call to `size` or `length`.
class SizeCall extends FunctionCall {
string fname;

SizeCall() {
fname = this.getTarget().getName() and
(fname = "size" or fname = "length")
}
}

// `x[i]` is safe if `x` is a `std::array` (fixed-size array)
// and `i` within the bounds of the array.
predicate indexK_with_fixedarray(ClassTemplateInstantiation t, ArrayIndexCall call) {
t = call.getClassTemplateInstantiation() and
exists(Expr idx |
t.getSimpleName() = "array" and
idx = call.getArgument(0) and
lowerBound(idx) >= 0 and
upperBound(idx) < t.getTemplateArgument(1).(Literal).getValue().toInt()
)
}

// Holds if `cond` is a Boolean condition that checks the size of
// the array. It handles the following code patterns:
//
// 1. `if (!x.empty()) { ... }`
// 2. `if (x.length()) { ... }`
// 3. `if (x.size() > 2) { ... }`
// 4. `if (x.size() == 2) { ... }`
// 5. `if (x.size() != 0) { ... }`
//
// If it safe to assume that `x.size() >= minsize` on the exit `branch`.
predicate minimum_size_cond(Expr cond, Expr arrayExpr, int minsize, boolean branch) {
// `if (!x.empty()) { ...x[0]... }`
exists(FunctionCall emptyCall |
cond = emptyCall and
arrayExpr = emptyCall.getQualifier() and
emptyCall.getTarget().getName() = "empty" and
minsize = 1 and
branch = false
)
or
// `if (x.length()) { ...x[0]... }`
exists(SizeCall sizeCall |
cond = sizeCall and
arrayExpr = sizeCall.getQualifier() and
minsize = 1 and
branch = true
)
or
// `if (x.size() > 2) { ...x[2]... }`
exists(SizeCall sizeCall, Expr k, RelationStrictness strict |
arrayExpr = sizeCall.getQualifier() and
relOpWithSwapAndNegate(cond, sizeCall, k, Greater(), strict, branch)
|
strict = Strict() and minsize = 1 + k.getValue().toInt()
or
strict = Nonstrict() and minsize = k.getValue().toInt()
)
or
// `if (x.size() == 2) { ...x[1]... }`
exists(SizeCall sizeCall, Expr k |
arrayExpr = sizeCall.getQualifier() and
eqOpWithSwapAndNegate(cond, sizeCall, k, true, branch) and
minsize = k.getValue().toInt()
)
or
// `if (x.size() != 0) { ...x[0]... }`
exists(SizeCall sizeCall, Expr k |
arrayExpr = sizeCall.getQualifier() and
eqOpWithSwapAndNegate(cond, sizeCall, k, false, branch) and
k.getValue().toInt() = 0 and
minsize = 1
)
}

// Array accesses like these are safe:
// `if (!x.empty()) { ... x[0] ... }`
// `if (x.size() > 2) { ... x[2] ... }`
predicate indexK_with_check(GuardCondition guard, ArrayIndexCall call) {
exists(Expr arrayExpr, BasicBlock block, int i, int minsize, boolean branch |
minimum_size_cond(guard, arrayExpr, minsize, branch) and
(
globalValueNumber(arrayExpr) = globalValueNumber(call.getQualifier()) or
hashCons(arrayExpr) = hashCons(call.getQualifier())
) and
guard.controls(block, branch) and
block.contains(call) and
i = call.getArgument(0).getValue().toInt() and
0 <= i and
i < minsize
)
}

// Array accesses like this are safe:
// `if (i < x.size()) { ... x[i] ... }`
predicate indexI_with_check(GuardCondition guard, ArrayIndexCall call) {
exists(Expr idx, SizeCall sizeCall, BasicBlock block, boolean branch |
relOpWithSwapAndNegate(guard, idx, sizeCall, Lesser(), Strict(), branch) and
(
globalValueNumber(sizeCall.getQualifier()) = globalValueNumber(call.getQualifier()) and
globalValueNumber(idx) = globalValueNumber(call.getArgument(0))
or
hashCons(sizeCall.getQualifier()) = hashCons(call.getQualifier()) and
hashCons(idx) = hashCons(call.getArgument(0))
) and
guard.controls(block, branch) and
block.contains(call)
)
}

// Array accesses like this are safe:
// `if (!x.empty()) { ... x[x.size() - 1] ... }`
predicate index_last_with_check(GuardCondition guard, ArrayIndexCall call) {
exists(Expr arrayExpr, SubExpr minusExpr, SizeCall sizeCall, BasicBlock block, boolean branch |
minimum_size_cond(guard, arrayExpr, _, branch) and
(
globalValueNumber(arrayExpr) = globalValueNumber(call.getQualifier()) or
hashCons(arrayExpr) = hashCons(call.getQualifier())
) and
guard.controls(block, branch) and
block.contains(call) and
minusExpr = call.getArgument(0) and
minusExpr.getRightOperand().getValue().toInt() = 1 and
DataFlow::localExprFlow(sizeCall, minusExpr.getLeftOperand()) and
(
globalValueNumber(sizeCall.getQualifier()) = globalValueNumber(call.getQualifier()) or
hashCons(sizeCall.getQualifier()) = hashCons(call.getQualifier())
)
)
}

from ArrayIndexCall call
where
not indexK_with_fixedarray(_, call) and
not indexK_with_check(_, call) and
not indexI_with_check(_, call) and
not index_last_with_check(_, call) and
// Ignore accesses like this: `vsnprintf(&buffer[0], buffer.size(), format, args)`
// That's pointer arithmetic, not a deref, so it's usually a false positive.
not exists(AddressOfExpr addrExpr | addrExpr.getOperand() = call) and
// Ignore results in the xmpsdk directory.
not call.getLocation().getFile().getRelativePath().matches("xmpsdk/%")
select call, "Unsafe use of operator[]. Use the at() method instead."
5 changes: 5 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: "Exiv2 CodeQL config"

queries:
- uses: ./.github/codeql-queries/exiv2-code-scanning.qls
- uses: ./.github/codeql-queries/exiv2-cpp-queries
Loading