Cleanup ContextFormat3 sanitize
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 22 Apr 2010 17:37:58 +0000 (13:37 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 22 Apr 2010 17:37:58 +0000 (13:37 -0400)
src/hb-ot-layout-gsubgpos-private.hh

index a68e5a4..c5639bb 100644 (file)
@@ -463,10 +463,11 @@ struct ContextFormat3
     TRACE_SANITIZE ();
     if (!SANITIZE_SELF ()) return false;
     unsigned int count = glyphCount;
+    if (!SANITIZE_ARRAY (coverage, OffsetTo<Coverage>::get_size (), glyphCount)) return false;
     for (unsigned int i = 0; i < count; i++)
       if (!SANITIZE_THIS (coverage[i])) return false;
-    LookupRecord *lookupRecord = &CAST(LookupRecord, coverage, coverage[0].get_size () * glyphCount);
-    return SANITIZE_MEM (lookupRecord, lookupRecord[0].get_size () * lookupCount);
+    LookupRecord *lookupRecord = &CAST(LookupRecord, coverage, OffsetTo<Coverage>::get_size () * glyphCount);
+    return SANITIZE_ARRAY (lookupRecord, LookupRecord::get_size (), lookupCount);
   }
 
   private: