From: Alexander Drozdoff  <> Date: Fri, 28 Jan 2022 12:49:25 +0000 (+0000) Subject: Fix #957: Avif load memory leak X-Git-Tag: gtk2final~57 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=35f9552fca47bbe17e31f7247d1f017186397b5e Fix #957: Avif load memory leak https://github.com/BestImageViewer/geeqie/issues/957 --- diff --git a/src/image_load_heif.c b/src/image_load_heif.c index 6a305319..512dcfd9 100644 --- a/src/image_load_heif.c +++ b/src/image_load_heif.c @@ -42,7 +42,7 @@ struct _ImageLoaderHEIF { static void free_buffer(guchar *pixels, gpointer data) { - g_free (pixels); + heif_image_release((const struct heif_image*)data); } static gboolean image_loader_heif_load(gpointer loader, const guchar *buf, gsize count, GError **error) @@ -99,8 +99,9 @@ static gboolean image_loader_heif_load(gpointer loader, const guchar *buf, gsize height = heif_image_get_height(img,heif_channel_interleaved); width = heif_image_get_width(img,heif_channel_interleaved); alpha = heif_image_handle_has_alpha_channel(handle); + heif_image_handle_release(handle); - ld->pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, alpha, 8, width, height, stride, free_buffer, NULL); + ld->pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, alpha, 8, width, height, stride, free_buffer, img); ld->area_updated_cb(loader, 0, 0, width, height, ld->data); }