summaryrefslogtreecommitdiffstats
path: root/contrib/fontconfig/A01-fccache.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/fontconfig/A01-fccache.patch')
-rw-r--r--contrib/fontconfig/A01-fccache.patch51
1 files changed, 0 insertions, 51 deletions
diff --git a/contrib/fontconfig/A01-fccache.patch b/contrib/fontconfig/A01-fccache.patch
deleted file mode 100644
index e1d26dac6..000000000
--- a/contrib/fontconfig/A01-fccache.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 0e9b2a152729bfd457e656a9258a06cbfdac1bae Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <[email protected]>
-Date: Mon, 14 Nov 2016 20:14:35 +0900
-Subject: Fix FcCacheOffsetsValid()
-
-Validation fails when the FcValueList contains more than font->num.
-this logic was wrong because font->num contains a number of the elements
-in FcPatternElt but FcValue in FcValueList.
-
-This corrects 7a4a5bd7.
-
-Patch from Tobias Stoeckmann
-
-diff --git a/src/fccache.c b/src/fccache.c
-index 02ec301..6f3c68a 100644
---- a/src/fccache.c
-+++ b/src/fccache.c
-@@ -640,6 +640,7 @@ FcCacheOffsetsValid (FcCache *cache)
- FcPattern *font = FcFontSetFont (fs, i);
- FcPatternElt *e;
- FcValueListPtr l;
-+ char *last_offset;
-
- if ((char *) font < base ||
- (char *) font > end - sizeof (FcFontSet) ||
-@@ -653,11 +654,17 @@ FcCacheOffsetsValid (FcCache *cache)
- if (e->values != 0 && !FcIsEncodedOffset(e->values))
- return FcFalse;
-
-- for (j = font->num, l = FcPatternEltValues(e); j >= 0 && l; j--, l = FcValueListNext(l))
-- if (l->next != NULL && !FcIsEncodedOffset(l->next))
-- break;
-- if (j < 0)
-- return FcFalse;
-+ for (j = 0; j < font->num; j++)
-+ {
-+ last_offset = (char *) font + font->elts_offset;
-+ for (l = FcPatternEltValues(&e[j]); l; l = FcValueListNext(l))
-+ {
-+ if ((char *) l < last_offset || (char *) l > end - sizeof (*l) ||
-+ (l->next != NULL && !FcIsEncodedOffset(l->next)))
-+ return FcFalse;
-+ last_offset = (char *) l + 1;
-+ }
-+ }
- }
- }
-
---
-cgit v0.10.2
-