The
font for this
test case is an AAT version of the
Billion
laughs attack. It contains
an
AAT Extended Glyph Metamorphosis Table with nine
identical
Glyph Insertion Subtables whose embedded
finite-state machine inserts the
string
hahahahahahahahahaha for every
a in the
input string. If the input is “ha” (one single laugh), the first
subtable rewrites it to 10 laughs. The second subtable rewrites 10
to 100 laughs; the third goes from 100 to 1000; the fourth from 1000
to 10,000. After executing the ninth subtable, the final result
will be a billion laughs, but this will take a very long time (and
large amounts of memory) to compute. Your implementation should
neither crash nor hang under attack. See also
fontkit bug 174.