[gimp/metadata-wip-rebased] libgimpbase: fix crash in gimp_metadata_get_resolution()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/metadata-wip-rebased] libgimpbase: fix crash in gimp_metadata_get_resolution()
- Date: Wed, 23 Oct 2013 10:17:59 +0000 (UTC)
commit 8a59d2da67670b094cedbfd47d3a7d548139f133
Author: Michael Natterer <mitch gimp org>
Date: Wed Oct 23 12:17:27 2013 +0200
libgimpbase: fix crash in gimp_metadata_get_resolution()
libgimpbase/gimpmetadata.c | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/libgimpbase/gimpmetadata.c b/libgimpbase/gimpmetadata.c
index 8ccd04c..8c34033 100644
--- a/libgimpbase/gimpmetadata.c
+++ b/libgimpbase/gimpmetadata.c
@@ -626,20 +626,31 @@ gimp_metadata_get_resolution (GimpMetadata *metadata,
gchar *xr;
gchar *yr;
gchar *un;
- gint exif_unit;
- gchar **xnom = NULL;
- gchar **xdenom = NULL;
- gchar **ynom = NULL;
- gchar **ydenom = NULL;
+ gint exif_unit = 2;
+ gchar **xnom = NULL;
+ gchar **xdenom = NULL;
+ gchar **ynom = NULL;
+ gchar **ydenom = NULL;
g_return_val_if_fail (GEXIV2_IS_METADATA (metadata), FALSE);
xr = gexiv2_metadata_get_tag_string (metadata, "Exif.Image.XResolution");
yr = gexiv2_metadata_get_tag_string (metadata, "Exif.Image.YResolution");
+ if (! (xr && yr))
+ {
+ g_free (xr);
+ g_free (yr);
+ return FALSE;
+ }
+
un = gexiv2_metadata_get_tag_string (metadata, "Exif.Image.ResolutionUnit");
- exif_unit = atoi (un);
- g_free (un);
+
+ if (un)
+ {
+ exif_unit = atoi (un);
+ g_free (un);
+ }
if (exif_unit == 3)
*unit = GIMP_UNIT_MM;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]