aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2008-10-17 02:20:31 +0000
committerKenichi Handa2008-10-17 02:20:31 +0000
commit393566216f8622ca3a41ff361cf8db40e1132276 (patch)
tree18a3179e4fa50a6dab68dbc3a00a7e7194ba9ae5 /src
parent2de17c73f345b7ad3030e7575a3c82fcff1e9da9 (diff)
downloademacs-393566216f8622ca3a41ff361cf8db40e1132276.tar.gz
emacs-393566216f8622ca3a41ff361cf8db40e1132276.zip
(ftfont_otf_features): Fix indexing
gsub_gpos->FeatureList.Feature. Check the validity of indices.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/ftfont.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a601b361d5a..6606d09e446 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12008-10-17 Kenichi Handa <handa@m17n.org>
2
3 * ftfont.c (ftfont_otf_features): Fix indexing
4 gsub_gpos->FeatureList.Feature. Check the validity of indices.
5
12008-10-16 Magnus Henoch <mange@freemail.hu> 62008-10-16 Magnus Henoch <mange@freemail.hu>
2 7
3 * dbusbind.c (Fdbus_call_method): Unbreak usage line. 8 * dbusbind.c (Fdbus_call_method): Unbreak usage line.
diff --git a/src/ftfont.c b/src/ftfont.c
index da2760a7891..cc78e29ebbd 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -1340,7 +1340,7 @@ ftfont_otf_features (gsub_gpos)
1340 OTF_GSUB_GPOS *gsub_gpos; 1340 OTF_GSUB_GPOS *gsub_gpos;
1341{ 1341{
1342 Lisp_Object scripts, langsyses, features, sym; 1342 Lisp_Object scripts, langsyses, features, sym;
1343 int i, j, k; 1343 int i, j, k, l;
1344 1344
1345 for (scripts = Qnil, i = gsub_gpos->ScriptList.ScriptCount - 1; i >= 0; i--) 1345 for (scripts = Qnil, i = gsub_gpos->ScriptList.ScriptCount - 1; i >= 0; i--)
1346 { 1346 {
@@ -1359,7 +1359,10 @@ ftfont_otf_features (gsub_gpos)
1359 1359
1360 for (features = Qnil, k = otf_langsys->FeatureCount - 1; k >= 0; k--) 1360 for (features = Qnil, k = otf_langsys->FeatureCount - 1; k >= 0; k--)
1361 { 1361 {
1362 OTF_TAG_SYM (sym, gsub_gpos->FeatureList.Feature[k].FeatureTag); 1362 l = otf_langsys->FeatureIndex[k];
1363 if (l > gsub_gpos->FeatureList.FeatureCount)
1364 continue;
1365 OTF_TAG_SYM (sym, gsub_gpos->FeatureList.Feature[l].FeatureTag);
1363 features = Fcons (sym, features); 1366 features = Fcons (sym, features);
1364 } 1367 }
1365 if (j >= 0) 1368 if (j >= 0)