gdk: Fix possible memory errors
authorMatthias Clasen <mclasen@redhat.com>
Fri, 18 Nov 2022 04:51:28 +0000 (23:51 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 18 Nov 2022 05:04:23 +0000 (00:04 -0500)
clang complained that we may end up jumping
to the cleanup code without initializing data
in the jpeg code. Always initialize data to
NULL to prevent that eventuality.

gdk/loaders/gdkjpeg.c

index d0520cf9e8224f199e3710eef781abf77adf257a..6eada9d515608648c0ce28f93704a33ccc0f27a9 100644 (file)
@@ -141,7 +141,7 @@ gdk_load_jpeg (GBytes  *input_bytes,
   struct jpeg_decompress_struct info;
   struct error_handler_data jerr;
   guint width, height, stride;
-  unsigned char *data;
+  unsigned char *data = NULL;
   unsigned char *row[1];
   GBytes *bytes;
   GdkTexture *texture;
@@ -155,6 +155,7 @@ gdk_load_jpeg (GBytes  *input_bytes,
 
   if (sigsetjmp (jerr.setjmp_buffer, 1))
     {
+      g_free (data);
       jpeg_destroy_decompress (&info);
       return NULL;
     }
@@ -247,7 +248,7 @@ gdk_save_jpeg (GdkTexture *texture)
   struct jpeg_compress_struct info;
   struct error_handler_data jerr;
   struct jpeg_error_mgr err;
-  guchar *data;
+  guchar *data = NULL;
   gulong size = 0;
   guchar *input = NULL;
   GdkMemoryTexture *memtex = NULL;