Browse Source

Handle peeking errors in imagemeta

DarthSim 2 years ago
parent
commit
9bdc72ba34
1 changed files with 6 additions and 3 deletions
  1. 6 3
      imagemeta/image_meta.go

+ 6 - 3
imagemeta/image_meta.go

@@ -84,9 +84,12 @@ func DecodeMeta(r io.Reader) (Meta, error) {
 	formats, _ := atomicFormats.Load().([]format)
 	formats, _ := atomicFormats.Load().([]format)
 
 
 	for _, f := range formats {
 	for _, f := range formats {
-		b, err := rr.Peek(len(f.magic))
-		if err == nil && matchMagic(f.magic, b) {
-			return f.decodeMeta(rr)
+		if b, err := rr.Peek(len(f.magic)); err == nil || err == io.EOF {
+			if matchMagic(f.magic, b) {
+				return f.decodeMeta(rr)
+			}
+		} else {
+			return nil, err
 		}
 		}
 	}
 	}