From e75594f7a616644b011e3632692f2bf0d6eb709f Mon Sep 17 00:00:00 2001 From: Giteabot Date: Sat, 24 Feb 2024 20:08:06 +0800 Subject: [PATCH] Do not double close reader (#29354) (#29370) Backport #29354 by @KN4CK3R Fixes #29346 Co-authored-by: KN4CK3R Co-authored-by: wxiaoguang --- modules/git/blob_nogogit.go | 12 +++++++++++- routers/web/repo/editor.go | 3 --- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/git/blob_nogogit.go b/modules/git/blob_nogogit.go index 6a6edaf5b6..cc3109b50f 100644 --- a/modules/git/blob_nogogit.go +++ b/modules/git/blob_nogogit.go @@ -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 } diff --git a/routers/web/repo/editor.go b/routers/web/repo/editor.go index 85d40e7820..48cbd1abde 100644 --- a/routers/web/repo/editor.go +++ b/routers/web/repo/editor.go @@ -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 {