--- ./lib/gs_cff.ps.org 2005-09-15 20:49:07.000000000 +0900 +++ ./lib/gs_cff.ps 2005-09-16 12:45:51.000000000 +0900 @@ -493,12 +493,21 @@ { [ exch charstringcount pop { card8 } repeat ] } bind { /FDSelect cvx /invalidfont signalerror } bind dup -{ pop [ card16 card16 exch { - % Stack: previndex - card8 card16 dup 4 1 roll 3 -1 roll sub 1 sub { - exch 1 index - } repeat exch - } repeat pop ] +% Fixed operand stack overflow by Taiji Yamada +{ + pop 0 16384 array card16 card16 exch { % i arr C2 C1 {} repeat + card8 card16 exch % i arr C2 C3 c1 + 1 index 4 -1 roll sub % i arr C3 c1 C3-C2-1(=c) + 4 index 1 index add 4 index length ge { % i arr C3 c1 c i+c>=l + 4 index 1 index add array % i arr C3 c1 c arr + dup 0 6 index putinterval % i arr C3 c1 c arr + 5 -1 roll pop 4 1 roll % i arr C3 c1 c + } if % i arr C3 c1 c + { % i arr C3 c1 c {} repeat + 2 index 4 index 2 index put % i arr C3 c1 (arr i c1 put) + 4 -1 roll 1 add 4 1 roll % i++ arr C3 c1 + } repeat pop % i arr C3 + } repeat pop exch pop % arr } bind ] readonly def