From 59f6c50df8d4d9ceb90f109f6af5a96add3ec928 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 10 Aug 2022 13:25:17 -0400 Subject: [PATCH] jpeg loader: Limit memory consumption This will prevent stupid oom situations with pathological jpeg files, without affecting our ability to load reasonable images. --- gdk/loaders/gdkjpeg.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gdk/loaders/gdkjpeg.c b/gdk/loaders/gdkjpeg.c index 8f7e422f0c..a2467cc286 100644 --- a/gdk/loaders/gdkjpeg.c +++ b/gdk/loaders/gdkjpeg.c @@ -161,6 +161,8 @@ gdk_load_jpeg (GBytes *input_bytes, jpeg_create_decompress (&info); + info.mem->max_memory_to_use = 100 * 1024 * 1024; + jpeg_mem_src (&info, g_bytes_get_data (input_bytes, NULL), g_bytes_get_size (input_bytes)); @@ -272,6 +274,7 @@ gdk_save_jpeg (GdkTexture *texture) info.err = jpeg_std_error (&err); jpeg_create_compress (&info); + info.image_width = width; info.image_height = height; info.input_components = 3; @@ -280,6 +283,8 @@ gdk_save_jpeg (GdkTexture *texture) jpeg_set_defaults (&info); jpeg_set_quality (&info, 75, TRUE); + info.mem->max_memory_to_use = 100 * 1024 * 1024; + jpeg_mem_dest (&info, &data, &size); memtex = gdk_memory_texture_from_texture (texture,