From 8127d6812808f01227d0eaa4695b989f399447f7 Mon Sep 17 00:00:00 2001 From: Angira Kekteeva Date: Fri, 26 Nov 2021 12:19:06 +0300 Subject: [PATCH] [#186] Fix errors Signed-off-by: Angira Kekteeva --- api/handler/multipart_upload.go | 4 ++++ api/layer/multipart_upload.go | 3 +++ 2 files changed, 7 insertions(+) diff --git a/api/handler/multipart_upload.go b/api/handler/multipart_upload.go index f10bafbd..3a1f731f 100644 --- a/api/handler/multipart_upload.go +++ b/api/handler/multipart_upload.go @@ -380,6 +380,10 @@ func (h *handler) CompleteMultipartUploadHandler(w http.ResponseWriter, r *http. errors.GetAPIError(errors.ErrMalformedXML), additional...) return } + if len(reqBody.Parts) == 0 { + h.logAndSendError(w, "invalid xml with parts", reqInfo, errors.GetAPIError(errors.ErrMalformedXML), additional...) + return + } initPart, err := h.obj.GetUploadInitInfo(r.Context(), uploadInfo) if err != nil { diff --git a/api/layer/multipart_upload.go b/api/layer/multipart_upload.go index 9d5e1621..18b1b1e1 100644 --- a/api/layer/multipart_upload.go +++ b/api/layer/multipart_upload.go @@ -186,6 +186,9 @@ func (n *layer) CompleteMultipartUpload(ctx context.Context, p *CompleteMultipar if len(objects) == 1 { obj, err := n.headLastVersionIfNotDeleted(ctx, p.Info.Bkt, p.Info.Key) if err != nil { + if errors.IsS3Error(err, errors.ErrNoSuchKey) { + return nil, errors.GetAPIError(errors.ErrInvalidPart) + } return nil, err } if obj != nil && obj.Headers[UploadIDAttributeName] != "" {