On Tue, 04 Aug 2009 16:49:02 -0700 Thomas Lord wrote:
>Then to a future implementer. An EOTL bug which
>results in accidentally rendering an EOTC font
>is quite easy to imagine. Perhaps Moz. is above
>such a mistake yet the possibility is relevant
>to evaluating the quality of the proposed Recommendation.
This is not a reasonable concern and it can not practically happen.
It looks like there will be at least 3 magic numbers in the proposed
specification. It's hard to conceive of an implementation that's so
broken that there's three incorrect magic numbers and the browser
still decides to render it.
But even by some miracle that did happen, the proposed specification
for EOT Lite is based on a version with no rootstrings whatsoever
(0x00020000 aka 0x00010000 in the W3C submission[1]). Let's say a user
has a font which has been made for a future version of the EOT spec
which has a rootstring and they try to change the version number to
make it work with an EOTL-only browser. What will happen is that the
user will try to load it, find 'RootStringSize' and 'RootString' data
in the place that the FontData is supposed to be, and also that the
remaining size of the file is longer than necessary, so any
implementation will assume it's corrupt and it won't render. It's
simply inconceivable that an implementation will be made that
"accidentally" accepts files with rootstrings.
The only other potential corner case is where someone deliberately
tries to make an EOT file with a rootstring that's also a compliant
EOTL file on a browser with a broken magic number checker. This would
require the header of the OpenType[2] font to be the same as a
potential RootStringSize (which is an unsigned short) and the
RootString (in UTF-16), and then repeat the font header later for the
EOT-compliant browsers within the font data itself. I'm wary of
calling this it outright impossible in theory, but I'm happy to say
it's impractical for all real-world cases, and therefore can be
ignored as not being of any practical concern.
[1] http://www.w3.org/Submission/2008/SUBM-EOT-20080305/
[2] http://www.microsoft.com/typography/otspec/otff.htm