Browse Source

Fix HEIF/HEIC header parsing bug

DarthSim 5 years ago
parent
commit
07adcec559
2 changed files with 4 additions and 3 deletions
  1. 1 0
      CHANGELOG.md
  2. 3 3
      imagemeta/heic.go

+ 1 - 0
CHANGELOG.md

@@ -13,6 +13,7 @@
 ### Fix
 - Fix error when requested WebP dimension exceeds the WebP dimension limit.
 - Fix path parsing in some rare cases.
+- Fix HEIC/HEIF header parsing bug.
 
 ## [2.13.1] - 2020-05-06
 ### Fixed

+ 3 - 3
imagemeta/heic.go

@@ -23,7 +23,7 @@ func (d *heicDimensionsData) IsFilled() bool {
 
 func heicReadBoxHeader(r io.Reader) (boxType string, boxDataSize int64, err error) {
 	b := make([]byte, heicBoxHeaderSize)
-	_, err = r.Read(b)
+	_, err = io.ReadFull(r, b)
 	if err != nil {
 		return
 	}
@@ -36,7 +36,7 @@ func heicReadBoxHeader(r io.Reader) (boxType string, boxDataSize int64, err erro
 
 func heicReadBoxData(r io.Reader, boxDataSize int64) (b []byte, err error) {
 	b = make([]byte, boxDataSize)
-	_, err = r.Read(b)
+	_, err = io.ReadFull(r, b)
 	return
 }
 
@@ -70,7 +70,7 @@ func heicReadMeta(d *heicDimensionsData, r io.Reader, boxDataSize int64) error {
 		return errors.New("Invalid meta data")
 	}
 
-	if _, err := r.Read(make([]byte, 4)); err != nil {
+	if _, err := io.ReadFull(r, make([]byte, 4)); err != nil {
 		return err
 	}