summary refs log tree commit diff
path: root/gnu/packages/patches/icecat-CVE-2015-4491.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/icecat-CVE-2015-4491.patch')
-rw-r--r--gnu/packages/patches/icecat-CVE-2015-4491.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/gnu/packages/patches/icecat-CVE-2015-4491.patch b/gnu/packages/patches/icecat-CVE-2015-4491.patch
new file mode 100644
index 0000000000..c16885cfc7
--- /dev/null
+++ b/gnu/packages/patches/icecat-CVE-2015-4491.patch
@@ -0,0 +1,41 @@
+From c154557bc0aa7e310824717f3e829dd82e6726e4 Mon Sep 17 00:00:00 2001
+From: Lee Salzman <lsalzman@mozilla.com>
+Date: Tue, 21 Jul 2015 13:16:44 -0400
+Subject: [PATCH] Bug 1184009 - Limit image preview sizes. r=acomminos,
+ a=lmandel
+
+--HG--
+extra : transplant_source : %9B%86%13%60%B2%97%F1%8Fb%CB%9C%8D%FBWo%C9%EBPs1
+---
+ widget/gtk/nsFilePicker.cpp | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
+index 0b5a8dc..3c0d543 100644
+--- a/widget/gtk/nsFilePicker.cpp
++++ b/widget/gtk/nsFilePicker.cpp
+@@ -101,13 +101,16 @@ UpdateFilePreviewWidget(GtkFileChooser *file_chooser,
+     return;
+   }
+ 
+-  GdkPixbuf *preview_pixbuf;
++  GdkPixbuf *preview_pixbuf = nullptr;
+   // Only scale down images that are too big
+   if (preview_width > MAX_PREVIEW_SIZE || preview_height > MAX_PREVIEW_SIZE) {
+-    preview_pixbuf = gdk_pixbuf_new_from_file_at_size(image_filename,
+-                                                      MAX_PREVIEW_SIZE,
+-                                                      MAX_PREVIEW_SIZE,
+-                                                      nullptr);
++    if (ceil(preview_width / double(MAX_PREVIEW_SIZE) + 1.0) *
++          ceil(preview_height / double(MAX_PREVIEW_SIZE) + 1.0) < 0x7FFFFF) {
++      preview_pixbuf = gdk_pixbuf_new_from_file_at_size(image_filename,
++                                                        MAX_PREVIEW_SIZE,
++                                                        MAX_PREVIEW_SIZE,
++                                                        nullptr);
++    }
+   }
+   else {
+     preview_pixbuf = gdk_pixbuf_new_from_file(image_filename, nullptr);
+-- 
+2.4.3
+