git.lucas.co / go_mono
git clone https://git.lucas.co/go_mono.git

commit33d19683fad8d833d2299173c7bf8ced0f102764
parent58c23975ca
authorLars Lehtonen <[email protected]>
date2019-12-09 08:37
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 <[email protected]>
Reviewed-by: Nigel Tao <[email protected]>

 font/sfnt/gpos.go | 6 ++++++
 1 file changed, 6 insertions(+)

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 @@ func (f *Font) parseGPOSKern(buf []byte) ([]byte, []kernFunc, error) {
 
 	// 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 @@ func (f *Font) parseGPOSScriptFeatures(buf []byte, offset int, script uint32) ([
 
 	// 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 {