[gimp] app: don't validate the terminating \0 of a gimp-comment parasite



commit 790cde3dd8496b2646dcb22315d8c19bf95cb113
Author: Michael Natterer <mitch gimp org>
Date:   Tue May 31 22:28:44 2016 +0200

    app: don't validate the terminating \0 of a gimp-comment parasite
    
    Valid UTF-8 doesn't contain nul bytes.

 app/core/gimpimage.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 40bfe9b..5930b37 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -3410,9 +3410,16 @@ gimp_image_parasite_validate (GimpImage           *image,
     }
   else if (strcmp (name, "gimp-comment") == 0)
     {
-      if (! g_utf8_validate (gimp_parasite_data (parasite),
-                             gimp_parasite_data_size (parasite),
-                             NULL))
+      const gchar *data   = gimp_parasite_data (parasite);
+      gssize       length = gimp_parasite_data_size (parasite);
+      gboolean     valid;
+
+      if (data[length - 1] == '\0')
+        valid = g_utf8_validate (data, -1, NULL);
+      else
+        valid = g_utf8_validate (data, length, NULL);
+
+      if (! valid)
         {
           g_set_error (error, GIMP_ERROR, GIMP_FAILED,
                        _("'gimp-comment' parasite validation failed: "


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