summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/dwrite-font-match-robustness.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/cairo/dwrite-font-match-robustness.patch')
-rw-r--r--gfx/cairo/dwrite-font-match-robustness.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/gfx/cairo/dwrite-font-match-robustness.patch b/gfx/cairo/dwrite-font-match-robustness.patch
new file mode 100644
index 000000000..eadcce3bd
--- /dev/null
+++ b/gfx/cairo/dwrite-font-match-robustness.patch
@@ -0,0 +1,26 @@
+From: Robert O'Callahan <robert@ocallahan.org>
+Bug 717178. Part 1: Don't crash when passing a nil scaled-font to _name_tables_match. r=jfkthame
+
+diff --git a/gfx/cairo/cairo/src/cairo-dwrite-font.cpp b/gfx/cairo/cairo/src/cairo-dwrite-font.cpp
+--- a/gfx/cairo/cairo/src/cairo-dwrite-font.cpp
++++ b/gfx/cairo/cairo/src/cairo-dwrite-font.cpp
+@@ -1489,17 +1489,18 @@ static cairo_bool_t
+ unsigned long size1;
+ unsigned long size2;
+ cairo_int_status_t status1;
+ cairo_int_status_t status2;
+ unsigned char *buffer1;
+ unsigned char *buffer2;
+ cairo_bool_t result = false;
+
+- if (!font1->backend->load_truetype_table ||
++ if (!font1->backend || !font2->backend ||
++ !font1->backend->load_truetype_table ||
+ !font2->backend->load_truetype_table)
+ return false;
+
+ status1 = font1->backend->load_truetype_table (font1,
+ TT_TAG_name, 0, NULL, &size1);
+ status2 = font2->backend->load_truetype_table (font2,
+ TT_TAG_name, 0, NULL, &size2);
+ if (status1 || status2)