DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (31ec81b5d7bb)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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)