aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-01-17 23:09:37 -0800
committerchrislu <chris.lu@gmail.com>2022-01-17 23:09:37 -0800
commitc87b8f4c302d225cce45cdfc312c35ddbf7c8f86 (patch)
tree31a7444e4314405f9fa3095901cc46e028e9b8ad
parente271721d4ec04365b15be96d009e20cc6f64317e (diff)
downloadseaweedfs-c87b8f4c302d225cce45cdfc312c35ddbf7c8f86.tar.xz
seaweedfs-c87b8f4c302d225cce45cdfc312c35ddbf7c8f86.zip
S3: fail fast when "X-Amz-Copy-Source" is a folder
fix https://github.com/chrislusf/seaweedfs/issues/2593
-rw-r--r--weed/s3api/s3api_object_copy_handlers.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/weed/s3api/s3api_object_copy_handlers.go b/weed/s3api/s3api_object_copy_handlers.go
index 8af0cacf1..5c082eeda 100644
--- a/weed/s3api/s3api_object_copy_handlers.go
+++ b/weed/s3api/s3api_object_copy_handlers.go
@@ -38,6 +38,10 @@ func (s3a *S3ApiServer) CopyObjectHandler(w http.ResponseWriter, r *http.Request
s3err.WriteErrorResponse(w, r, s3err.ErrInvalidCopySource)
return
}
+ if entry.IsDirectory {
+ s3err.WriteErrorResponse(w, r, s3err.ErrInvalidCopySource)
+ return
+ }
entry.Extended = weed_server.SaveAmzMetaData(r, entry.Extended, isReplace(r))
err = s3a.touch(dir, name, entry)
if err != nil {