diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-08-10 13:25:17 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-08-10 13:25:17 -0400 |
commit | 59f6c50df8d4d9ceb90f109f6af5a96add3ec928 (patch) | |
tree | 9f34080f35c0a8d6f5860926e7cd76269d059922 /gdk | |
parent | 86e5ad85b7018c7bc4e692a8c1d679f7c897c96e (diff) | |
download | gtk+-59f6c50df8d4d9ceb90f109f6af5a96add3ec928.tar.gz |
jpeg loader: Limit memory consumption
This will prevent stupid oom situations with pathological
jpeg files, without affecting our ability to load reasonable
images.
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/loaders/gdkjpeg.c | 5 |
1 files changed, 5 insertions, 0 deletions
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, |