From: Robin H. Johnson Date: Thu, 7 Jul 2016 21:14:36 +0000 (-0700) Subject: rgw: fix multi-delete query param parsing. X-Git-Tag: ses5-milestone5~396^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F10187%2Fhead;p=ceph.git rgw: fix multi-delete query param parsing. Multi-delete is triggered by a query parameter on POST, but there are multiple valid ways of representing it, and Ceph should accept ANY way that has the query parameter set, regardless of what value or absence of value. This caused the RubyGem aws-sdk-v1 to break, and has been present since multi-delete was first added in commit 0a1f4a97da, for the bobtail release. Fixes: http://tracker.ceph.com/issues/16618 Signed-off-by: Robin H. Johnson --- diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 655bbd290e5..e485d99f40c 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -1548,7 +1548,7 @@ int RGWHandler_REST::read_permissions(RGWOp* op_obj) case OP_POST: case OP_COPY: /* is it a 'multi-object delete' request? */ - if (s->info.request_params == "delete") { + if (s->info.args.exists("delete")) { only_bucket = true; break; } diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 23267199c78..5acba5e0825 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -2866,7 +2866,7 @@ RGWOp *RGWHandler_REST_Bucket_S3::op_delete() RGWOp *RGWHandler_REST_Bucket_S3::op_post() { - if ( s->info.request_params == "delete" ) { + if (s->info.args.exists("delete")) { return new RGWDeleteMultiObj_ObjStore_S3; }