Allowing post area names to be >32767. 

Some fonts that cover all of unicode require post name entries greater than 
32767. While the standard strictly requires this limit. Common implementations 
support it (it was an artifact of 16-bit windows). 
Permitting this variance from the specification. 

Patch from bradnelson@.

BUG=None 
TEST=test/test_{un,}malicious_fonts.sh, unifont.ttf passes validation
Review URL:https://codereview.chromium.org/68173026/



git-svn-id: http://ots.googlecode.com/svn/trunk@106 a4e77c2c-9104-11de-800e-5b313e0d2bf3
diff --git a/src/post.cc b/src/post.cc
index 74ba453..f4a0b0d 100644
--- a/src/post.cc
+++ b/src/post.cc
@@ -76,10 +76,9 @@
     if (!table.ReadU16(&post->glyph_name_index[i])) {
       return OTS_FAILURE();
     }
-    if (post->glyph_name_index[i] >= 32768) {
-      // Note: droid_arialuni.ttf fails this test.
-      return OTS_FAILURE();  // reserved area.
-    }
+    // Note: A strict interpretation of the specification requires name indexes
+    // are less than 32768. This, however, excludes fonts like unifont.ttf
+    // which cover all of unicode.
   }
 
   // Now we have an array of Pascal strings. We have to check that they are all
diff --git a/test/BLACKLIST.txt b/test/BLACKLIST.txt
index 094fd75..f3cd207 100644
--- a/test/BLACKLIST.txt
+++ b/test/BLACKLIST.txt
@@ -109,10 +109,6 @@
 # Malformed GLYF table; The content of flags array and the lengths of xCoordinates, yCoordinates are inconsistent.
 DecoTypeNaskh.ttf
 
-# Malformed POST table; A glyph index in the reserved area (>= 32768) is specified.
-wqy-zenhei.ttf
-unifont.ttf
-
 # Malformed HMTX table; The table is too short.
 mona.ttf