diff options
Diffstat (limited to 'gfx/cairo/dwrite-font-match-robustness.patch')
-rw-r--r-- | gfx/cairo/dwrite-font-match-robustness.patch | 26 |
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) |