]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: req xml params size limitation error msg 16310/head
authorEnming Zhang <enming.zhang@umcloud.com>
Fri, 7 Jul 2017 10:05:17 +0000 (18:05 +0800)
committerEnming Zhang <enming.zhang@umcloud.com>
Sat, 15 Jul 2017 13:13:11 +0000 (21:13 +0800)
Now rgw will return like following:

400
<?xml version="1.0" encoding="UTF-8"?><Error><Code>MalformedXML</Code><Message>The XML you provided was larger than the maximum 2048 bytes allowed.</Message><BucketName>333</BucketName><RequestId>tx000000000000000000009-00596a1331-101a-default</RequestId><HostId>101a-default-default</HostId></Error>

Signed-off-by: Enming Zhang <enming.zhang@umcloud.com>
src/rgw/rgw_op.cc

index 20eada8ed1950cede410c6b4d2bdf0ffd6c77008..630f3f4806b5cf45da309e47a59bfc6d6322f7c0 100644 (file)
@@ -4537,8 +4537,17 @@ void RGWPutACLs::execute()
   owner = existing_policy->get_owner();
 
   op_ret = get_params();
-  if (op_ret < 0)
+  if (op_ret < 0) {
+    if (op_ret == -ERANGE) {
+      ldout(s->cct, 4) << "The size of request xml data is larger than the max limitation, data size = "
+                       << s->length << dendl;
+      op_ret = -ERR_MALFORMED_XML;
+      s->err.message = "The XML you provided was larger than the maximum " +
+                       std::to_string(s->cct->_conf->rgw_max_put_param_size) +
+                       " bytes allowed.";
+    }
     return;
+  }
 
   ldout(s->cct, 15) << "read len=" << len << " data=" << (data ? data : "") << dendl;