Fix NULL dereference
authorBehdad Esfahbod <behdad@behdad.org>
Mon, 16 Aug 2010 18:36:27 +0000 (14:36 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 16 Aug 2010 18:36:27 +0000 (14:36 -0400)
Reported by Jonathan Kew.  Face table handling needs to be redone
anyway, but fix this for now.

src/hb-ot-layout.cc

index 31451fc..965a2fb 100644 (file)
@@ -76,19 +76,19 @@ _hb_ot_layout_free (hb_ot_layout_t *layout)
 static const GDEF&
 _get_gdef (hb_face_t *face)
 {
-  return likely (face->ot_layout->gdef) ? *face->ot_layout->gdef : Null(GDEF);
+  return likely (face->ot_layout && face->ot_layout->gdef) ? *face->ot_layout->gdef : Null(GDEF);
 }
 
 static const GSUB&
 _get_gsub (hb_face_t *face)
 {
-  return likely (face->ot_layout->gsub) ? *face->ot_layout->gsub : Null(GSUB);
+  return likely (face->ot_layout && face->ot_layout->gsub) ? *face->ot_layout->gsub : Null(GSUB);
 }
 
 static const GPOS&
 _get_gpos (hb_face_t *face)
 {
-  return likely (face->ot_layout->gpos) ? *face->ot_layout->gpos : Null(GPOS);
+  return likely (face->ot_layout && face->ot_layout->gpos) ? *face->ot_layout->gpos : Null(GPOS);
 }