Closed aminophen closed 5 years ago
(一応,後から参照しやすいようにファイルしておきます)
の手順に従うと,
という問題が報告されました。原因は「ループが post->glyphNamePtr のサイズを超えて回ってしまうこと」だとわかったので,修正パッチを
post->glyphNamePtr
に置きました。
補足: ZR さんのツイッター
post->count は post->names(非標準の名前のリスト)のサイズであってグリフ数(post->numberOfGlyphs)とは異なる。で常識的には“名前の個数”はグリフの個数と同じでpost->namesはそれ以下になるはず、だけどipaexm.ttfは「未使用の名前」があるためpost->namesの方が大きかった。
post->count
post->names
post->numberOfGlyphs
もうひとつ
ipaexmの場合は「名前の方が多い」ので不正メモリアクセスになったけど、大抵の(グリフ名テーブルをもつ)フォントの場合は「名前の方が少ない」ので「最後の方にあるグリフの名前が認識されない」ことになる。例えばipamp.ttfではグリフ数=12728、名前数=12727だから、最後(GID12727)のグリフの名前が欠ける。実際に、GID12725~12727のグリフ名 /aj15736.pw.vert /aj16197.pw.vert /aj16198.pw.vert でのアクセスを試みると、GID12727のものだけ失敗する。
r50098 でコミットしました。
(一応,後から参照しやすいようにファイルしておきます)
の手順に従うと,
という問題が報告されました。原因は「ループが
post->glyphNamePtr
のサイズを超えて回ってしまうこと」だとわかったので,修正パッチをに置きました。
補足: ZR さんのツイッター
もうひとつ