diff options
-rw-r--r-- | src/fccache.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/fccache.c b/src/fccache.c index 6f3c68a2..f9e66e83 100644 --- a/src/fccache.c +++ b/src/fccache.c @@ -642,12 +642,22 @@ FcCacheOffsetsValid (FcCache *cache) FcValueListPtr l; char *last_offset; + /* TIZEN_ONLY(20171013): Add a condition to FcCacheOffsetsValid() for detecting empty data of cache if ((char *) font < base || (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)) return FcFalse; + */ + if ((char *) font < base || + (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) || + !FcRefIsConst (&font->ref)) + return FcFalse; + /* END */ e = FcPatternElts(font); |