[gthumb] Fix crash when adding categories to a photo - bug 547620



commit 6697cd9372e8348b5efe0eaae6ac4a7cb035c820
Author: Marc Pavot <marc pavot gmail com>
Date:   Fri May 1 09:08:01 2009 -0400

    Fix crash when adding categories to a photo - bug 547620
---
 libgthumb/gth-exiv2-utils.cpp |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/libgthumb/gth-exiv2-utils.cpp b/libgthumb/gth-exiv2-utils.cpp
index 4c56cec..ec2b32b 100644
--- a/libgthumb/gth-exiv2-utils.cpp
+++ b/libgthumb/gth-exiv2-utils.cpp
@@ -495,6 +495,10 @@ read_exiv2_file (const char *uri, GList *metadata)
 		std::cerr << "Caught Exiv2 exception '" << e << "'\n";
 		return metadata;
 	}
+	catch (...) {
+		std::cerr << "Caught unknown exception\n";
+		return metadata;
+	}
 }
 
 
@@ -544,6 +548,10 @@ read_exiv2_sidecar (const char *uri, GList *metadata)
 		std::cout << "Caught Exiv2 exception '" << e << "'\n";
 		return metadata;
 	}
+	catch (...) {
+		std::cerr << "Caught unknown exception\n";
+		return metadata;
+	}
 }
 
 
@@ -591,7 +599,8 @@ write_metadata (const char *from_file,
 		for (scan = metadata_in; scan; scan = scan->next) {
 			// Update the requested tag
 			GthMetadata *metadatum = (GthMetadata *) scan->data;
-			if (metadatum->full_name != NULL) {
+			if (metadatum->full_name != NULL
+                            && metadatum->raw_value != NULL) {
 				if (g_str_has_prefix (metadatum->full_name, "Exif")) {
 					ed[metadatum->full_name] = metadatum->raw_value;
 				}
@@ -668,4 +677,7 @@ write_metadata (const char *from_file,
 		// TODO: signal an error to the caller?
 		std::cerr << error << "\n";
 	}
+	catch (...) {
+		std::cerr << "Caught unknown exception when writing metadata\n";
+	}
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]