font/sfnt: fix dropped errors

Pick up dropped errors in parseGPOSScriptFeatures()
and parseGPOSKern().

Change-Id: I50d9b1feca4c69163df644702afb0c386c2987f7
Reviewed-on: https://go-review.googlesource.com/c/image/+/210499
Reviewed-by: Sebastien Binet <seb.binet@gmail.com>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/font/sfnt/gpos.go b/font/sfnt/gpos.go
index f136877..e0aafa5 100644
--- a/font/sfnt/gpos.go
+++ b/font/sfnt/gpos.go
@@ -60,6 +60,9 @@
 
 	// get all lookup indices for kern features
 	buf, lookupIdx, err := f.parseGPOSFeaturesLookup(buf, int(f.gpos.offset)+int(featureListOffset), featureIdxs, hexFeatureKern)
+	if err != nil {
+		return buf, nil, err
+	}
 
 	// LookupTableList: lookupCount,[]lookups
 	buf, numLookupTables, err := f.src.varLenView(buf, int(f.gpos.offset)+int(lookupListOffset), 2, 0, 2)
@@ -284,6 +287,9 @@
 
 	// LangSys table: lookupOrder (reserved), requiredFeatureIndex, featureIndexCount, []featureIndices
 	buf, numFeatures, err := f.src.varLenView(buf, offset+int(scriptTableOffset)+int(defaultLangSysOffset), 6, 4, 2)
+	if err != nil {
+		return buf, nil, err
+	}
 
 	featureIdxs := make([]int, numFeatures)
 	for i := range featureIdxs {