diff options
| author | Kenichi Handa | 2008-10-17 02:20:31 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2008-10-17 02:20:31 +0000 |
| commit | 393566216f8622ca3a41ff361cf8db40e1132276 (patch) | |
| tree | 18a3179e4fa50a6dab68dbc3a00a7e7194ba9ae5 /src | |
| parent | 2de17c73f345b7ad3030e7575a3c82fcff1e9da9 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/ftfont.c | 7 |
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 @@ | |||
| 1 | 2008-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 | |||
| 1 | 2008-10-16 Magnus Henoch <mange@freemail.hu> | 6 | 2008-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) |