File get_orientation-Fix-abort-on-Minolta-meta-data.patch of Package libgexiv2
From 2860755db106c9484ee7ad5fb4d90a7291e05641 Mon Sep 17 00:00:00 2001
From: Jens Georg <mail@jensge.org>
Date: Sun, 18 Dec 2016 17:02:42 +0100
Subject: [PATCH] get_orientation: Fix abort on Minolta meta-data
Properly handle rotation value 72 (not rotated)
https://bugzilla.redhat.com/show_bug.cgi?id=1401706
Signed-off-by: Jens Georg <mail@jensge.org>
https://bugzilla.gnome.org/show_bug.cgi?id=776233
---
gexiv2/gexiv2-metadata.cpp | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/gexiv2/gexiv2-metadata.cpp b/gexiv2/gexiv2-metadata.cpp
index cb89a52..13d685d 100644
--- a/gexiv2/gexiv2-metadata.cpp
+++ b/gexiv2/gexiv2-metadata.cpp
@@ -399,26 +399,31 @@ GExiv2Orientation gexiv2_metadata_get_orientation (GExiv2Metadata *self) {
// Because some camera set a wrong standard exif orientation tag,
// We need to check makernote tags first!
if (gexiv2_metadata_has_exif_tag(self, "Exif.MinoltaCs7D.Rotation")) {
- switch (gexiv2_metadata_get_exif_tag_long(self, "Exif.MinoltaCs7D.Rotation")) {
+ long orientation = gexiv2_metadata_get_exif_tag_long(self, "Exif.MinoltaCs7D.Rotation");
+ switch (orientation) {
case 76:
return GEXIV2_ORIENTATION_ROT_90;
-
case 82:
return GEXIV2_ORIENTATION_ROT_270;
+ case 72:
+ return GEXIV2_ORIENTATION_UNSPECIFIED;
default:
- g_assert_not_reached();
+ g_debug ("Unknown Minolta rotation value %ld, ignoring", orientation);
}
}
-
+
if (gexiv2_metadata_has_exif_tag(self, "Exif.MinoltaCs5D.Rotation")) {
- switch (gexiv2_metadata_get_exif_tag_long(self, "Exif.MinoltaCs5D.Rotation")) {
+ long orientation = gexiv2_metadata_get_exif_tag_long(self, "Exif.MinoltaCs5D.Rotation");
+ switch (orientation) {
case 76:
return GEXIV2_ORIENTATION_ROT_90;
case 82:
return GEXIV2_ORIENTATION_ROT_270;
+ case 72:
+ return GEXIV2_ORIENTATION_UNSPECIFIED;
default:
- g_assert_not_reached();
+ g_debug ("Unknown Minolta rotation value %ld, ignoring", orientation);
}
}
--
2.9.3