[gegl] tiff-load: protect against more NULL error dereferencing



commit 764c1581ac45db30d4907f9acbcf61ef48905875
Author: Øyvind Kolås <pippin gimp org>
Date:   Sun Mar 12 20:59:00 2017 +0100

    tiff-load: protect against more NULL error dereferencing

 operations/external/tiff-load.c |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/operations/external/tiff-load.c b/operations/external/tiff-load.c
index 204956a..98bfb01 100644
--- a/operations/external/tiff-load.c
+++ b/operations/external/tiff-load.c
@@ -156,7 +156,7 @@ read_from_stream(thandle_t handle,
       read = g_input_stream_read(G_INPUT_STREAM(p->stream),
                                  (void *) buffer, (gsize) size,
                                  NULL, &error);
-      if (read < 0)
+      if (read < 0 && error)
         {
           g_warning("%s", error->message);
           g_error_free(error);
@@ -189,8 +189,11 @@ read_from_stream(thandle_t handle,
                                          NULL, &error);
               if (read < 0)
                 {
-                  g_warning("%s", error->message);
-                  g_error_free(error);
+                  if (error)
+                  {
+                    g_warning("%s", error->message);
+                    g_error_free(error);
+                  }
                   break;
                 }
 
@@ -240,7 +243,7 @@ seek_in_stream(thandle_t handle,
                                NULL, &error);
       if (sought)
         position = g_seekable_tell(G_SEEKABLE(p->stream));
-      else
+      else if (error)
         {
           g_warning("%s", error->message);
           g_error_free(error);
@@ -282,7 +285,7 @@ close_stream(thandle_t handle)
 
   closed = g_input_stream_close(G_INPUT_STREAM(p->stream),
                                 NULL, &error);
-  if (!closed)
+  if (!closed && error)
     {
       g_warning("%s", error->message);
       g_error_free(error);
@@ -322,8 +325,11 @@ get_file_size(thandle_t handle)
                                NULL, &error);
       if (info == NULL)
         {
-          g_warning("%s", error->message);
-          g_error_free(error);
+          if (error)
+          {
+            g_warning("%s", error->message);
+            g_error_free(error);
+          }
         }
       else
         {


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