tenfourfox/gfx/cairo/dwrite-font-match-robustnes...

27 lines
1.1 KiB
Diff

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)