This checks if the blob isn't empty and uses `hb_face_count`
to see if the font file passes the simple font file sanitization
so can detect if the input is actually a font and checks also
whether input font-index is out of range.
blob = hb_blob_create_from_file (font_file);
}
+ if (hb_blob_get_length (blob) == 0)
+ fail (false, "No such file or directory, or is empty");
+
+ unsigned int face_count = hb_face_count (blob);
+
+ if (face_count == 0)
+ fail (false, "Not a font file"); // most likely
+
+ if (face_index > face_count)
+ fail (false, "The requested font index wasn't available in the file");
+
/* Create the face */
hb_face_t *face = hb_face_create (blob, face_index);
hb_blob_destroy (blob);