Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package exiv2 for openSUSE:Factory checked 
in at 2023-07-19 19:09:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/exiv2 (Old)
 and      /work/SRC/openSUSE:Factory/.exiv2.new.5570 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "exiv2"

Wed Jul 19 19:09:47 2023 rev:77 rq:1099225 version:0.28.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/exiv2/exiv2.changes      2023-07-01 
23:17:58.182230973 +0200
+++ /work/SRC/openSUSE:Factory/.exiv2.new.5570/exiv2.changes    2023-07-19 
19:09:50.276286769 +0200
@@ -1,0 +2,6 @@
+Fri Jul  7 21:44:18 UTC 2023 - Konstantin Voinov <k...@kott.no-ip.biz>
+
+- add exiv2-metadata-null-checks.patch fixes gwenview crashes and
+  other apps https://github.com/Exiv2/exiv2/issues/2638
+
+-------------------------------------------------------------------

New:
----
  exiv2-metadata-null-checks.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ exiv2.spec ++++++
--- /var/tmp/diff_new_pack.Q0LDAx/_old  2023-07-19 19:09:51.460293694 +0200
+++ /var/tmp/diff_new_pack.Q0LDAx/_new  2023-07-19 19:09:51.468293741 +0200
@@ -27,6 +27,8 @@
 Source0:        
https://github.com/Exiv2/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
 Source1:        baselibs.conf
 Patch0:         exiv2-build-date.patch
+# PATCH-FIX-UPSTREAM exiv2-metadata-null-checks.patch - Check if the metadata 
is NULL
+Patch1:         exiv2-metadata-null-checks.patch
 BuildRequires:  cmake
 BuildRequires:  fdupes
 %if 0%{?suse_version} < 1600

++++++ exiv2-metadata-null-checks.patch ++++++
>From 360c6cd41f15baf6d999da12e1fc077180f5da91 Mon Sep 17 00:00:00 2001
From: Kevin Backhouse <kevinbackho...@github.com>
Date: Sun, 25 Jun 2023 16:14:06 +0100
Subject: [PATCH 1/2] Check if the metadata is NULL.

---
 src/nikonmn_int.cpp | 16 ++++++++--------
 src/sonymn_int.cpp  |  4 ++--
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/nikonmn_int.cpp b/src/nikonmn_int.cpp
index 2887c1b62..949023d00 100644
--- a/src/nikonmn_int.cpp
+++ b/src/nikonmn_int.cpp
@@ -3384,7 +3384,7 @@ std::ostream& 
Nikon3MakerNote::printExternalFlashData2(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashMasterDataFl6(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3413,7 +3413,7 @@ std::ostream& 
Nikon3MakerNote::printFlashMasterDataFl6(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashMasterDataFl7(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3480,7 +3480,7 @@ std::ostream& 
Nikon3MakerNote::printFlashGroupBCControlData(std::ostream& os, co
 
 std::ostream& Nikon3MakerNote::printFlashGroupADataFl6(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3509,7 +3509,7 @@ std::ostream& 
Nikon3MakerNote::printFlashGroupADataFl6(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashGroupADataFl7(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3538,7 +3538,7 @@ std::ostream& 
Nikon3MakerNote::printFlashGroupADataFl7(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashGroupBDataFl6(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3567,7 +3567,7 @@ std::ostream& 
Nikon3MakerNote::printFlashGroupBDataFl6(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashGroupBDataFl7(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3596,7 +3596,7 @@ std::ostream& 
Nikon3MakerNote::printFlashGroupBDataFl7(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashGroupCDataFl6(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
@@ -3625,7 +3625,7 @@ std::ostream& 
Nikon3MakerNote::printFlashGroupCDataFl6(std::ostream& os, const V
 
 std::ostream& Nikon3MakerNote::printFlashGroupCDataFl7(std::ostream& os, const 
Value& value, const ExifData* metadata) {
   std::ios::fmtflags f(os.flags());
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     os.flags(f);
     return os;
diff --git a/src/sonymn_int.cpp b/src/sonymn_int.cpp
index f2950c460..2fe62bdbf 100644
--- a/src/sonymn_int.cpp
+++ b/src/sonymn_int.cpp
@@ -1799,7 +1799,7 @@ const TagInfo* SonyMakerNote::tagListFp() {
 
 std::ostream& SonyMakerNote::printSony2FpAmbientTemperature(std::ostream& os, 
const Value& value,
                                                             const ExifData* 
metadata) {
-  if (value.count() != 1)
+  if (value.count() != 1 || !metadata)
     return os << "(" << value << ")";
 
   auto pos = metadata->findKey(ExifKey("Exif.Sony2Fp.0x0002"));
@@ -1879,7 +1879,7 @@ const TagInfo* SonyMakerNote::tagListSonyMisc1() {
 
 std::ostream& SonyMakerNote::printSonyMisc1CameraTemperature(std::ostream& os, 
const Value& value,
                                                              const ExifData* 
metadata) {
-  if (value.count() != 1)
+  if (value.count() != 1 || !metadata)
     return os << "(" << value << ")";
 
   auto pos = metadata->findKey(ExifKey("Exif.SonyMisc1.0x0004"));

>From 1119a68a1e90b5a278f4ecc70461bfca786eee0d Mon Sep 17 00:00:00 2001
From: Kevin Backhouse <kevinbackho...@github.com>
Date: Sun, 25 Jun 2023 22:23:24 +0100
Subject: [PATCH 2/2] Check if the metadata is NULL.

---
 src/sonymn_int.cpp | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/sonymn_int.cpp b/src/sonymn_int.cpp
index 2fe62bdbf..a2cde2282 100644
--- a/src/sonymn_int.cpp
+++ b/src/sonymn_int.cpp
@@ -827,7 +827,7 @@ std::ostream& SonyMakerNote::printWBShiftABGM(std::ostream& 
os, const Value& val
 }
 
 std::ostream& SonyMakerNote::printFocusMode2(std::ostream& os, const Value& 
value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -854,7 +854,7 @@ std::ostream& SonyMakerNote::printFocusMode2(std::ostream& 
os, const Value& valu
 }
 
 std::ostream& SonyMakerNote::printAFAreaModeSetting(std::ostream& os, const 
Value& value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -891,7 +891,7 @@ std::ostream& 
SonyMakerNote::printAFAreaModeSetting(std::ostream& os, const Valu
 }
 
 std::ostream& SonyMakerNote::printFlexibleSpotPosition(std::ostream& os, const 
Value& value, const ExifData* metadata) {
-  if (value.count() != 2 || value.typeId() != unsignedShort) {
+  if (value.count() != 2 || value.typeId() != unsignedShort || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -916,7 +916,7 @@ std::ostream& 
SonyMakerNote::printFlexibleSpotPosition(std::ostream& os, const V
 }
 
 std::ostream& SonyMakerNote::printAFPointSelected(std::ostream& os, const 
Value& value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -967,7 +967,7 @@ std::ostream& 
SonyMakerNote::printAFPointSelected(std::ostream& os, const Value&
 }
 
 std::ostream& SonyMakerNote::printAFPointsUsed(std::ostream& os, const Value& 
value, const ExifData* metadata) {
-  if (value.typeId() != unsignedByte) {
+  if (value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -994,7 +994,7 @@ std::ostream& 
SonyMakerNote::printAFPointsUsed(std::ostream& os, const Value& va
 }
 
 std::ostream& SonyMakerNote::printAFTracking(std::ostream& os, const Value& 
value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedByte) {
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -1297,7 +1297,7 @@ std::ostream& SonyMakerNote::printImageSize(std::ostream& 
os, const Value& value
 }
 
 std::ostream& SonyMakerNote::printFocusMode(std::ostream& os, const Value& 
value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedShort) {
+  if (value.count() != 1 || value.typeId() != unsignedShort || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -1314,7 +1314,7 @@ std::ostream& SonyMakerNote::printFocusMode(std::ostream& 
os, const Value& value
 }
 
 std::ostream& SonyMakerNote::printAFMode(std::ostream& os, const Value& value, 
const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedShort) {
+  if (value.count() != 1 || value.typeId() != unsignedShort || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -1336,7 +1336,7 @@ std::ostream& SonyMakerNote::printAFMode(std::ostream& 
os, const Value& value, c
 }
 
 std::ostream& SonyMakerNote::printFocusMode3(std::ostream& os, const Value& 
value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedShort) {
+  if (value.count() != 1 || value.typeId() != unsignedShort || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -1353,7 +1353,7 @@ std::ostream& 
SonyMakerNote::printFocusMode3(std::ostream& os, const Value& valu
 
 std::ostream& SonyMakerNote::printHighISONoiseReduction2(std::ostream& os, 
const Value& value,
                                                          const ExifData* 
metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedShort) {
+  if (value.count() != 1 || value.typeId() != unsignedShort || !metadata) {
     os << "(" << value << ")";
     return os;
   }
@@ -1840,7 +1840,7 @@ std::ostream& 
SonyMakerNote::printSony2FpFocusMode(std::ostream& os, const Value
 
 std::ostream& SonyMakerNote::printSony2FpFocusPosition2(std::ostream& os, 
const Value& value,
                                                         const ExifData* 
metadata) {
-  if (value.count() != 1)
+  if (value.count() != 1 || !metadata)
     os << "(" << value << ")";
   else {
     std::string model;
@@ -1944,7 +1944,7 @@ const TagInfo* SonyMakerNote::tagListSonyMisc2b() {
 
 std::ostream& SonyMakerNote::printSonyMisc2bLensZoomPosition(std::ostream& os, 
const Value& value,
                                                              const ExifData* 
metadata) {
-  if (value.count() != 1)
+  if (value.count() != 1 || !metadata)
     return os << "(" << value << ")";
 
   std::string model;
@@ -1966,7 +1966,7 @@ std::ostream& 
SonyMakerNote::printSonyMisc2bLensZoomPosition(std::ostream& os, c
 
 std::ostream& SonyMakerNote::printSonyMisc2bFocusPosition2(std::ostream& os, 
const Value& value,
                                                            const ExifData* 
metadata) {
-  if (value.count() != 1)
+  if (value.count() != 1 || !metadata)
     return os << "(" << value << ")";
 
   std::string model;
@@ -2052,7 +2052,7 @@ const TagInfo* SonyMakerNote::tagListSonyMisc3c() {
 
 std::ostream& 
SonyMakerNote::printSonyMisc3cShotNumberSincePowerUp(std::ostream& os, const 
Value& value,
                                                                    const 
ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedLong)
+  if (value.count() != 1 || value.typeId() != unsignedLong || !metadata)
     return os << "(" << value << ")";
 
   std::string model;
@@ -2083,7 +2083,7 @@ std::ostream& 
SonyMakerNote::printSonyMisc3cSequenceNumber(std::ostream& os, con
 }
 
 std::ostream& SonyMakerNote::printSonyMisc3cQuality2(std::ostream& os, const 
Value& value, const ExifData* metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedByte)
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata)
     return os << "(" << value << ")";
 
   std::string model;
@@ -2108,7 +2108,7 @@ std::ostream& 
SonyMakerNote::printSonyMisc3cQuality2(std::ostream& os, const Val
 
 std::ostream& SonyMakerNote::printSonyMisc3cSonyImageHeight(std::ostream& os, 
const Value& value,
                                                             const ExifData* 
metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedShort)
+  if (value.count() != 1 || value.typeId() != unsignedShort || !metadata)
     return os << "(" << value << ")";
 
   std::string model;
@@ -2131,7 +2131,7 @@ std::ostream& 
SonyMakerNote::printSonyMisc3cSonyImageHeight(std::ostream& os, co
 
 std::ostream& SonyMakerNote::printSonyMisc3cModelReleaseYear(std::ostream& os, 
const Value& value,
                                                              const ExifData* 
metadata) {
-  if (value.count() != 1 || value.typeId() != unsignedByte)
+  if (value.count() != 1 || value.typeId() != unsignedByte || !metadata)
     return os << "(" << value << ")";
 
   std::string model;

Reply via email to