]> source.dussan.org Git - gitea.git/commitdiff
Do not double close reader (#29354) (#29370)
authorGiteabot <teabot@gitea.io>
Sat, 24 Feb 2024 12:08:06 +0000 (20:08 +0800)
committerGitHub <noreply@github.com>
Sat, 24 Feb 2024 12:08:06 +0000 (12:08 +0000)
Backport #29354 by @KN4CK3R

Fixes #29346

Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
modules/git/blob_nogogit.go
routers/web/repo/editor.go

index 6a6edaf5b667dcbf4a29670904a4921912b3510c..cc3109b50fd363f8501bad66485a6579e9f7d776 100644 (file)
@@ -102,7 +102,17 @@ func (b *blobReader) Read(p []byte) (n int, err error) {
 
 // Close implements io.Closer
 func (b *blobReader) Close() error {
+       if b.rd == nil {
+               return nil
+       }
+
        defer b.cancel()
 
-       return DiscardFull(b.rd, b.n+1)
+       if err := DiscardFull(b.rd, b.n+1); err != nil {
+               return err
+       }
+
+       b.rd = nil
+
+       return nil
 }
index 85d40e7820b166964c3dea8eab9ca7847fc452e9..48cbd1abdece7a3a13ab7f62b776b07e4ddd805d 100644 (file)
@@ -161,9 +161,6 @@ func editFile(ctx *context.Context, isNewFile bool) {
                }
 
                d, _ := io.ReadAll(dataRc)
-               if err := dataRc.Close(); err != nil {
-                       log.Error("Error whilst closing blob data: %v", err)
-               }
 
                buf = append(buf, d...)
                if content, err := charset.ToUTF8(buf, charset.ConvertOpts{KeepBOM: true}); err != nil {