From 2c180159c00aa184e1fe8b051b1aa1e9f0f332fc Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Thu, 7 Jul 2016 14:14:36 -0700 Subject: [PATCH] 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 (cherry picked from commit a7016e1b67e82641f0702fda4eae799e953063e6) --- src/rgw/rgw_rest.cc | 2 +- src/rgw/rgw_rest_s3.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 859e34a770b..eb5e67eca5c 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -1228,7 +1228,7 @@ int RGWHandler_ObjStore::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 49ff617efab..b5485324429 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -2016,7 +2016,7 @@ RGWOp *RGWHandler_ObjStore_Bucket_S3::op_delete() RGWOp *RGWHandler_ObjStore_Bucket_S3::op_post() { - if ( s->info.request_params == "delete" ) { + if (s->info.args.exists("delete")) { return new RGWDeleteMultiObj_ObjStore_S3; } -- 2.47.3