Skip to content

Commit 20a28b7

Browse files
authored
Ensure Request Body Readers are closed in LFS server (#8454) (#8459)
1 parent d330b2f commit 20a28b7

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

modules/lfs/locks.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ func PostLockHandler(ctx *context.Context) {
155155
}
156156

157157
var req api.LFSLockRequest
158-
dec := json.NewDecoder(ctx.Req.Body().ReadCloser())
158+
bodyReader := ctx.Req.Body().ReadCloser()
159+
defer bodyReader.Close()
160+
dec := json.NewDecoder(bodyReader)
159161
if err := dec.Decode(&req); err != nil {
160162
writeStatus(ctx, 400)
161163
return
@@ -269,7 +271,9 @@ func UnLockHandler(ctx *context.Context) {
269271
}
270272

271273
var req api.LFSLockDeleteRequest
272-
dec := json.NewDecoder(ctx.Req.Body().ReadCloser())
274+
bodyReader := ctx.Req.Body().ReadCloser()
275+
defer bodyReader.Close()
276+
dec := json.NewDecoder(bodyReader)
273277
if err := dec.Decode(&req); err != nil {
274278
writeStatus(ctx, 400)
275279
return

modules/lfs/server.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,9 @@ func PutHandler(ctx *context.Context) {
327327
}
328328

329329
contentStore := &ContentStore{BasePath: setting.LFS.ContentPath}
330-
if err := contentStore.Put(meta, ctx.Req.Body().ReadCloser()); err != nil {
330+
bodyReader := ctx.Req.Body().ReadCloser()
331+
defer bodyReader.Close()
332+
if err := contentStore.Put(meta, bodyReader); err != nil {
331333
ctx.Resp.WriteHeader(500)
332334
fmt.Fprintf(ctx.Resp, `{"message":"%s"}`, err)
333335
if err = repository.RemoveLFSMetaObjectByOid(rv.Oid); err != nil {
@@ -434,7 +436,9 @@ func unpack(ctx *context.Context) *RequestVars {
434436

435437
if r.Method == "POST" { // Maybe also check if +json
436438
var p RequestVars
437-
dec := json.NewDecoder(r.Body().ReadCloser())
439+
bodyReader := r.Body().ReadCloser()
440+
defer bodyReader.Close()
441+
dec := json.NewDecoder(bodyReader)
438442
err := dec.Decode(&p)
439443
if err != nil {
440444
return rv
@@ -453,7 +457,9 @@ func unpackbatch(ctx *context.Context) *BatchVars {
453457
r := ctx.Req
454458
var bv BatchVars
455459

456-
dec := json.NewDecoder(r.Body().ReadCloser())
460+
bodyReader := r.Body().ReadCloser()
461+
defer bodyReader.Close()
462+
dec := json.NewDecoder(bodyReader)
457463
err := dec.Decode(&bv)
458464
if err != nil {
459465
return &bv

0 commit comments

Comments
 (0)