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
openSUSE Build Service is sponsored by