From 665584a19b0ec227c93643ffb0540d11ac8ecf7f Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Tue, 14 Nov 2017 20:55:24 +0900 Subject: [PATCH] Validate cache more carefully Reject caches when FcPattern isn't a constant. This is usually unlikely to happen but reported. I've decided to add more validation since this isn't reproducible and easy to have a workaround rather than investigating 'why'. https://bugs.freedesktop.org/show_bug.cgi?id=103237 --- src/fccache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fccache.c b/src/fccache.c index 6f3c68a..c59ea19 100644 --- a/src/fccache.c +++ b/src/fccache.c @@ -646,7 +646,8 @@ FcCacheOffsetsValid (FcCache *cache) (char *) font > end - sizeof (FcFontSet) || font->elts_offset < 0 || font->elts_offset > end - (char *) font || - font->num > (end - (char *) font - font->elts_offset) / sizeof (FcPatternElt)) + font->num > (end - (char *) font - font->elts_offset) / sizeof (FcPatternElt) || + !FcRefIsConst (&font->ref)) return FcFalse;