]> source.dussan.org Git - gitea.git/commitdiff
Close file on invalid range (#15166)
authorKN4CK3R <KN4CK3R@users.noreply.github.com>
Sat, 3 Apr 2021 12:44:12 +0000 (14:44 +0200)
committerGitHub <noreply@github.com>
Sat, 3 Apr 2021 12:44:12 +0000 (14:44 +0200)
* Close file on invalid range.

* Close on seek error

Co-authored-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
modules/lfs/content_store.go

index 788ef5b9a695061ec32589cdc84ca8244bdb4519..9473cc35c2bffd8cac258dc71b90bdcfb39c5d0d 100644 (file)
@@ -53,6 +53,10 @@ func (s *ContentStore) Get(meta *models.LFSMetaObject, fromByte int64) (io.ReadC
        }
        if fromByte > 0 {
                if fromByte >= meta.Size {
+                       err = f.Close()
+                       if err != nil {
+                               log.Error("Whilst trying to read LFS OID[%s]: Unable to close Error: %v", meta.Oid, err)
+                       }
                        return nil, ErrRangeNotSatisfiable{
                                FromByte: fromByte,
                        }
@@ -60,6 +64,10 @@ func (s *ContentStore) Get(meta *models.LFSMetaObject, fromByte int64) (io.ReadC
                _, err = f.Seek(fromByte, io.SeekStart)
                if err != nil {
                        log.Error("Whilst trying to read LFS OID[%s]: Unable to seek to %d Error: %v", meta.Oid, fromByte, err)
+                       errClose := f.Close()
+                       if errClose != nil {
+                               log.Error("Whilst trying to read LFS OID[%s]: Unable to close Error: %v", meta.Oid, errClose)
+                       }
                }
        }
        return f, err