Do not double close reader (#29354) (#29370)

Backport #29354 by @KN4CK3R

Fixes #29346

Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
Giteabot 2024-02-24 20:08:06 +08:00 committed by GitHub
parent a1c0b3a02e
commit e75594f7a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 4 deletions

View File

@ -102,7 +102,17 @@ func (b *blobReader) Read(p []byte) (n int, err error) {
// Close implements io.Closer // Close implements io.Closer
func (b *blobReader) Close() error { func (b *blobReader) Close() error {
if b.rd == nil {
return nil
}
defer b.cancel() 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
} }

View File

@ -161,9 +161,6 @@ func editFile(ctx *context.Context, isNewFile bool) {
} }
d, _ := io.ReadAll(dataRc) d, _ := io.ReadAll(dataRc)
if err := dataRc.Close(); err != nil {
log.Error("Error whilst closing blob data: %v", err)
}
buf = append(buf, d...) buf = append(buf, d...)
if content, err := charset.ToUTF8(buf, charset.ConvertOpts{KeepBOM: true}); err != nil { if content, err := charset.ToUTF8(buf, charset.ConvertOpts{KeepBOM: true}); err != nil {