handler: Avoid calling WriteChunk if no data is available (#746)

* fix: avoiding `writeChunk` no-op

* fix: formatting

* fix: added return statement

* fix: preserving side effects

* refactor: smaller change
This commit is contained in:
André Fontenele 2022-06-17 14:04:26 +02:00 committed by GitHub
parent 63830b35d1
commit b5cbafdbd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -576,6 +576,7 @@ func (handler *UnroutedHandler) PatchFile(w http.ResponseWriter, r *http.Request
info.Size = uploadLength info.Size = uploadLength
info.SizeIsDeferred = false info.SizeIsDeferred = false
} }
if err := handler.writeChunk(ctx, upload, info, w, r); err != nil { if err := handler.writeChunk(ctx, upload, info, w, r); err != nil {
@ -623,7 +624,7 @@ func (handler *UnroutedHandler) writeChunk(ctx context.Context, upload Upload, i
var err error var err error
// Prevent a nil pointer dereference when accessing the body which may not be // Prevent a nil pointer dereference when accessing the body which may not be
// available in the case of a malicious request. // available in the case of a malicious request.
if r.Body != nil { if r.Body != nil && maxSize > 0 {
// Limit the data read from the request's body to the allowed maximum // Limit the data read from the request's body to the allowed maximum
reader := newBodyReader(io.LimitReader(r.Body, maxSize)) reader := newBodyReader(io.LimitReader(r.Body, maxSize))