Merge branch '0.27-maintenance' into fix_1033_0.27

v0.27.3
Robin Mills 5 years ago committed by GitHub
commit e077261c99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

1968
po/ca.po

File diff suppressed because it is too large Load Diff

@ -193,6 +193,19 @@ namespace Exiv2
{
BasicIo& io = Image::io();
// Fix for https://github.com/Exiv2/exiv2/issues/712
// A malicious file can cause a very deep recursion, leading to
// stack exhaustion.
// Note: 200 is an arbitrarily chosen cut-off value. The value
// of depth determines the amount of indentation inserted by the
// pretty-printer. The output starts to become unreadable as
// soon as the indentation exceeds 80 characters or so. That's
// why 200 ought to be a reasonable cut-off.
if (depth > 200) {
out << Internal::indent(depth) << "Maximum indentation depth exceeded." << std::endl;
return;
}
depth++;
bool bFirst = true;

@ -154,12 +154,10 @@ namespace {
N_("%1 has invalid XMP value type `%2'") }, // %1=key, %2=value type
{ Exiv2::kerInvalidIccProfile,
N_("Not a valid ICC Profile") },
{ Exiv2::kerInvalidXMP,
N_("Not valid XMP") },
{ Exiv2::kerTiffDirectoryTooLarge,
N_("tiff directory length is too large") },
{ Exiv2::kerInvalidTypeValue,
N_("invalid type value detected in Image::printIFDStructure") },
N_("invalid type in tiff structure") },
{ Exiv2::kerInvalidMalloc,
N_("invalid memory allocation request") },
{ Exiv2::kerCorruptedMetadata,

@ -135,6 +135,18 @@ namespace Exiv2 {
{ 768, N_("Manual") }
};
//! ShadowTone, tag 0x1040
//! HighlightTone, tag 0x041
extern const TagDetails fujiSHTone[] = {
{ -64, N_("+4") },
{ -48, N_("+3") },
{ -32, N_("+2") },
{ -16, N_("+1") },
{ 0 , N_("0") },
{ 16, N_("-1") },
{ 32, N_("-2") },
};
//! Continuous, tag 0x1100
extern const TagDetails fujiContinuous[] = {
{ 0, N_("Off") },
@ -180,6 +192,24 @@ namespace Exiv2 {
{ 32768, N_("Film simulation mode") }
};
//! DRangePriority, tag 0x1443
extern const TagDetails fujiDRangePriority[] = {
{ 0, N_("Auto") },
{ 1, N_("Fixed") }
};
//! DRangePriorityAuto, tag 0x1444
extern const TagDetails fujiDRangePriorityAuto[] = {
{ 1, N_("Weak") },
{ 2, N_("Strong") }
};
//! DRangePriorityFixed, tag 0x1445
extern const TagDetails fujiDRangePriorityFixed[] = {
{ 1, N_("Weak") },
{ 2, N_("Strong") }
};
// Fujifilm MakerNote Tag Info
const TagInfo FujiMakerNote::tagInfo_[] = {
TagInfo(0x0000, "Version", N_("Version"),
@ -228,6 +258,12 @@ namespace Exiv2 {
TagInfo(0x1032, "0x1032", "0x1032",
N_("Unknown"),
fujiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1040, "ShadowTone", N_("Shadow Tone"),
N_("Shadow tone"),
fujiId, makerTags, signedLong, -1, EXV_PRINT_TAG(fujiSHTone)),
TagInfo(0x1041, "HighlightTone", N_("Highlight Tone"),
N_("Highlight tone"),
fujiId, makerTags, signedLong, -1, EXV_PRINT_TAG(fujiSHTone)),
TagInfo(0x1100, "Continuous", N_("Continuous"),
N_("Continuous shooting or auto bracketing setting"),
fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiContinuous)),
@ -273,6 +309,18 @@ namespace Exiv2 {
TagInfo(0x1407, "MaxApertureAtMaxFocal", N_("Maximum Aperture at Maximum Focal"),
N_("Maximum aperture at maximum focal"),
fujiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x1431, "Rating", N_("Rating"),
N_("Rating"),
fujiId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1443, "DRangePriority", N_("D Range Priority"),
N_("Dynamic range priority"),
fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDRangePriority)),
TagInfo(0x1444, "DRangePriorityFixed", N_("D Range Priority Fixed"),
N_("Dynamic range priority fixed"),
fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDRangePriorityFixed)),
TagInfo(0x1445, "DRangePriorityAuto", N_("D Range Priority Auto"),
N_("Dynamic range priority auto"),
fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDRangePriorityAuto)),
TagInfo(0x8000, "FileSource", N_("File Source"),
N_("File source"),
fujiId, makerTags, asciiString, -1, printValue),

@ -376,7 +376,7 @@ namespace Exiv2 {
// Break for unknown tag types else we may segfault.
if ( !typeValid(type) ) {
std::cerr << "invalid type value detected in Image::printIFDStructure: " << type << std::endl;
std::cerr << "invalid type in tiff structure" << type << std::endl;
start = 0; // break from do loop
throw Error(kerInvalidTypeValue);
}

@ -2538,9 +2538,11 @@ fmountlens[] = {
// https://github.com/Exiv2/exiv2/issues/598 , https://github.com/Exiv2/exiv2/pull/891
{0xCF,0x47,0x5C,0x8E,0x31,0x3D,0xDF,0x0E,0x00,0x00,0x00, "Tamron", "A030", "SP 70-300mm F/4-5.6 Di VC USD"},
//
{0xf4,0x4c,0x7c,0x7c,0x2c,0x2c,0x4b,0x02,0x00,0x00,0x00, "Sigma", "", "APO MACRO 180mm F3.5 EX DG"},
{0xf4,0x4c,0x7c,0x7c,0x2c,0x2c,0x4b,0x02,0x00,0x00,0x00, "Sigma", "", "APO Macro 180mm F3.5 EX DG HSM"},
// https://github.com/Exiv2/exiv2/issues/1078
{0x80,0x48,0x1C,0x29,0x24,0x24,0x7A,0x06,0x00,0x00,0x00, "Tokina", "", "atx-i 11-16mm F2.8 CF"},
// https://github.com/Exiv2/exiv2/issues/1069
{0xc8,0x54,0x44,0x44,0x0d,0x0d,0xdf,0x46,0x00,0x00,0x00, "Tamron", "F045", "SP 35mm f/1.4 Di USD"},
// https://github.com/Exiv2/exiv2/pull/1105
{0xCB,0x3C,0x2B,0x44,0x24,0x31,0xDF,0x46,0x00,0x00,0x00, "Tamron", "A037", "17-35mm F/2.8-4 Di OSD"},
//

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
import system_tests
class FujiTags(metaclass=system_tests.CaseMeta):
filesAndExpectedOutput = [
("FujiTagsDRangeAutoRating1.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Rating Long 1 1
Exif.Fujifilm.DRangePriority Short 1 Auto
Exif.Fujifilm.DRangePriorityAuto Short 1 Weak
""")
,
("FujiTagsDRangeWeakRating2.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Rating Long 1 2
Exif.Fujifilm.DRangePriority Short 1 Fixed
Exif.Fujifilm.DRangePriorityFixed Short 1 Weak
""")
,
("FujiTagsDRangeStrongRating3.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Rating Long 1 3
Exif.Fujifilm.DRangePriority Short 1 Fixed
Exif.Fujifilm.DRangePriorityFixed Short 1 Strong
"""),
("FujiTagsSTone0HTone0Rating4.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Rating Long 1 4
"""),
("FujiTagsSTone1HTone-1Rating5.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 +1
Exif.Fujifilm.HighlightTone SLong 1 -1
Exif.Fujifilm.Rating Long 1 5
"""),
("FujiTagsSTone4HTone-2.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 +4
Exif.Fujifilm.HighlightTone SLong 1 -2
Exif.Fujifilm.Rating Long 1 0
"""),
("FujiTagsSTone-2HTone4.jpg",
"""Exif.Fujifilm.ShadowTone SLong 1 -2
Exif.Fujifilm.HighlightTone SLong 1 +4
Exif.Fujifilm.Rating Long 1 0
""")
]
tags = ["Exif.Fujifilm.ShadowTone",
"Exif.Fujifilm.HighlightTone",
"Exif.Fujifilm.Rating",
"Exif.Fujifilm.DRangePriority",
"Exif.Fujifilm.DRangePriorityAuto",
"Exif.Fujifilm.DRangePriorityFixed"]
tagcmd = "$exiv2 -K " + " -K ".join(tags)
commands = ["$tagcmd $data_path/" + f for f, _ in filesAndExpectedOutput]
stdout = [e for _, e in filesAndExpectedOutput]
stderr = [""] * len(filesAndExpectedOutput)
retval = [0] * len(filesAndExpectedOutput)

@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
import system_tests
class NikonTamronLens_F045_35_F14(metaclass=system_tests.CaseMeta):
url = "https://github.com/Exiv2/exiv2/issues/1069"
filename = "$data_path/Tamron_SP_35mm_f1.4_Di_USD_F045.exv"
commands = ["$exiv2 -pa --grep lensid/i $filename"]
stderr = [""]
stdout = [""
"""Exif.NikonLd3.LensIDNumber Byte 1 Tamron SP 35mm f/1.4 Di USD
"""
]
retval = [0]

@ -0,0 +1,30 @@
import system_tests
class BigTiffImageRecursionStackExhaustion(
metaclass=system_tests.CaseMeta):
"""
Regression test for the bug described in:
https://github.com/Exiv2/exiv2/issues/712
A malicious input file can cause BigTiffImage::printIFD() to
recurse arbitrarily deep, causing a crash due to stack exhaustion.
The bug only existed in the -pR mode, which is now only enabled
in debug builds.
"""
url = "https://github.com/Exiv2/exiv2/issues/790"
filename = system_tests.path(
"$data_path/issue_712_poc.tif"
)
commands = ["$exiv2 -b -u -k pr $filename"]
stdout = ["File name : " + filename + """
File size : 3720 Bytes
MIME type :
Image size : 0 x 0
"""
]
stderr = [filename + """: No Exif data found in the file
"""]
retval = [253]

@ -2,14 +2,14 @@
import system_tests
class NikonSigmaLens_APO_MACRO_180_F35_EX_DG(metaclass=system_tests.CaseMeta):
class NikonSigmaLens_APO_MACRO_180_F35_EX_DG_HSM(metaclass=system_tests.CaseMeta):
url = "https://github.com/Exiv2/exiv2/pull/992"
filename = "$data_path/Sigma_APO_MACRO_180_F3.5_EX_DG.exv"
filename = "$data_path/Sigma_APO_MACRO_180_F3.5_EX_DG_HSM.exv"
commands = ["$exiv2 -pa --grep lensid/i $filename"]
stderr = [""]
stdout = [""
"""Exif.NikonLd3.LensIDNumber Byte 1 Sigma APO MACRO 180mm F3.5 EX DG
"""Exif.NikonLd3.LensIDNumber Byte 1 Sigma APO Macro 180mm F3.5 EX DG HSM
"""
]
retval = [0]

@ -35,6 +35,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Auto
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -43,6 +45,7 @@ Exif.Fujifilm.ExposureWarning Short 1 Off
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.FilmMode Short 1 F0/Standard (Provia)
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -56,6 +59,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Auto
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -64,6 +69,7 @@ Exif.Fujifilm.ExposureWarning Short 1 Off
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.FilmMode Short 1 F2/Fujichrome (Velvia)
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""", #b
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -77,6 +83,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Auto
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -85,6 +93,7 @@ Exif.Fujifilm.ExposureWarning Short 1 Off
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.FilmMode Short 1 F1b/Studio Portrait Smooth Skin Tone (Astia)
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -98,6 +107,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Auto
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -106,6 +117,7 @@ Exif.Fujifilm.ExposureWarning Short 1 Off
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.FilmMode Short 1 Classic Chrome
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -119,6 +131,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Auto
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -127,6 +141,7 @@ Exif.Fujifilm.ExposureWarning Short 1 Off
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.FilmMode Short 1 Pro Neg. Hi
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -140,6 +155,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Manual
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 On
@ -147,6 +164,7 @@ Exif.Fujifilm.FocusWarning Short 1 Off
Exif.Fujifilm.ExposureWarning Short 1 On
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -160,6 +178,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Manual
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Program AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 On
@ -167,6 +187,7 @@ Exif.Fujifilm.FocusWarning Short 1 Off
Exif.Fujifilm.ExposureWarning Short 1 On
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -180,6 +201,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Manual
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Shutter speed priority AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -187,6 +210,7 @@ Exif.Fujifilm.FocusWarning Short 1 Off
Exif.Fujifilm.ExposureWarning Short 1 On
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -200,6 +224,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Manual
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Shutter speed priority AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -207,6 +233,7 @@ Exif.Fujifilm.FocusWarning Short 1 Off
Exif.Fujifilm.ExposureWarning Short 1 On
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
""",
"""Exif.Fujifilm.Version Undefined 4 48 49 51 48
Exif.Fujifilm.SerialNumber Ascii 48 FFDT22794526 593332303134151113535030217060
@ -220,6 +247,8 @@ Exif.Fujifilm.Macro Short 1 Off
Exif.Fujifilm.FocusMode Short 1 Manual
Exif.Fujifilm.SlowSync Short 1 Off
Exif.Fujifilm.PictureMode Short 1 Shutter speed priority AE
Exif.Fujifilm.ShadowTone SLong 1 0
Exif.Fujifilm.HighlightTone SLong 1 0
Exif.Fujifilm.Continuous Short 1 Off
Exif.Fujifilm.SequenceNumber Short 1 0
Exif.Fujifilm.BlurWarning Short 1 Off
@ -227,6 +256,7 @@ Exif.Fujifilm.FocusWarning Short 1 Off
Exif.Fujifilm.ExposureWarning Short 1 On
Exif.Fujifilm.DynamicRange Short 1 Standard
Exif.Fujifilm.DynamicRangeSetting Short 1 Auto (100-400%)
Exif.Fujifilm.Rating Long 1 0
"""
]
stderr = [""] * 10

@ -24,7 +24,7 @@ kerOffsetOutOfRange: Offset out of range
kerFailedToReadImageData: Failed to read image data
kerCorruptedMetadata: corrupted image metadata
kerInvalidMalloc: invalid memory allocation request
kerInvalidTypeValue: invalid type value detected in Image::printIFDStructure
kerInvalidTypeValue: invalid type in tiff structure
kerNotAJpeg : This does not look like a JPEG image
kerNoImageInInputData: Input data does not contain a valid image
addition_overflow_message: Overflow in addition

Loading…
Cancel
Save