[Fontconfig] Segmentation fault in WebCore::FontCache::lastResortFallbackFont
authormcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Aug 2016 00:20:48 +0000 (00:20 +0000)
committermcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Aug 2016 00:20:48 +0000 (00:20 +0000)
https://bugs.webkit.org/show_bug.cgi?id=141432

Reviewed by Myles C. Maxfield.

Crash more cleanly when we can't find any last resort fallback font.

* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::lastResortFallbackFont):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204154 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp

index 9b96abb..2bdefd7 100644 (file)
@@ -1,3 +1,15 @@
+2016-08-04  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [Fontconfig] Segmentation fault in WebCore::FontCache::lastResortFallbackFont
+        https://bugs.webkit.org/show_bug.cgi?id=141432
+
+        Reviewed by Myles C. Maxfield.
+
+        Crash more cleanly when we can't find any last resort fallback font.
+
+        * platform/graphics/freetype/FontCacheFreeType.cpp:
+        (WebCore::FontCache::lastResortFallbackFont):
+
 2016-08-04  Chris Dumez  <cdumez@apple.com>
 
         Move insertAdjacent*() API from HTMLElement to Element
index 7cc699c..8e04bd1 100644 (file)
@@ -126,7 +126,11 @@ Ref<Font> FontCache::lastResortFallbackFont(const FontDescription& fontDescripti
     // We want to return a fallback font here, otherwise the logic preventing FontConfig
     // matches for non-fallback fonts might return 0. See isFallbackFontAllowed.
     static AtomicString timesStr("serif");
-    return *fontForFamily(fontDescription, timesStr);
+    if (RefPtr<Font> font = fontForFamily(fontDescription, timesStr))
+        return *font;
+
+    // This could be reached due to improperly-installed or misconfigured fontconfig.
+    RELEASE_ASSERT_NOT_REACHED();
 }
 
 Vector<FontTraitsMask> FontCache::getTraitsInFamily(const AtomicString&)