diff --git a/modules/git/blob.go b/modules/git/blob.go index 020a591a23..a093dee205 100644 --- a/modules/git/blob.go +++ b/modules/git/blob.go @@ -83,13 +83,14 @@ func (b *Blob) DataAsync() (io.ReadCloser, error) { } if size < 4096 { - bs, err := io.ReadAll(io.LimitReader(rd, size)) + buf := make([]byte, size) + _, err := io.ReadFull(rd, buf) defer cancel() if err != nil { return nil, err } _, err = rd.Discard(1) - return io.NopCloser(bytes.NewReader(bs)), err + return io.NopCloser(bytes.NewReader(buf)), err } return &blobReader{ diff --git a/modules/git/blob_test.go b/modules/git/blob_test.go index 7caa2d2de3..96190aaf24 100644 --- a/modules/git/blob_test.go +++ b/modules/git/blob_test.go @@ -143,7 +143,7 @@ func Benchmark_Blob_Data(b *testing.B) { b.Fatal(err) } - for i := 0; i < b.N; i++ { + for b.Loop() { r, err := testBlob.DataAsync() if err != nil { b.Fatal(err)