summaryrefslogtreecommitdiff
path: root/src/rgw/rgw_op.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/rgw/rgw_op.cc')
-rw-r--r--src/rgw/rgw_op.cc25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc
index c792053dc72..e30b4dff976 100644
--- a/src/rgw/rgw_op.cc
+++ b/src/rgw/rgw_op.cc
@@ -1303,7 +1303,6 @@ void RGWPutACLs::execute()
RGWACLXMLParser_S3 parser(s->cct);
RGWAccessControlPolicy_S3 new_policy(s->cct);
stringstream ss;
- char *orig_data = data;
char *new_data = NULL;
ACLOwner owner;
rgw_obj obj;
@@ -1312,27 +1311,29 @@ void RGWPutACLs::execute()
if (!parser.init()) {
ret = -EINVAL;
- goto done;
+ return;
}
owner.set_id(s->user.user_id);
owner.set_name(s->user.display_name);
- if (get_params() < 0)
- goto done;
+ ret = get_params();
+ if (ret < 0)
+ return;
ldout(s->cct, 15) << "read len=" << len << " data=" << (data ? data : "") << dendl;
if (!s->canned_acl.empty() && len) {
ret = -EINVAL;
- goto done;
+ return;
}
if (!s->canned_acl.empty()) {
ret = get_canned_policy(owner, ss);
if (ret < 0)
- goto done;
+ return;
new_data = strdup(ss.str().c_str());
+ free(data);
data = new_data;
len = ss.str().size();
}
@@ -1340,12 +1341,12 @@ void RGWPutACLs::execute()
if (!parser.parse(data, len, 1)) {
ret = -EACCES;
- goto done;
+ return;
}
policy = (RGWAccessControlPolicy_S3 *)parser.find_first("AccessControlPolicy");
if (!policy) {
ret = -EINVAL;
- goto done;
+ return;
}
if (s->cct->_conf->subsys.should_gather(ceph_subsys_rgw, 15)) {
@@ -1356,7 +1357,7 @@ void RGWPutACLs::execute()
ret = policy->rebuild(&owner, new_policy);
if (ret < 0)
- goto done;
+ return;
if (s->cct->_conf->subsys.should_gather(ceph_subsys_rgw, 15)) {
ldout(s->cct, 15) << "New AccessControlPolicy:";
@@ -1368,12 +1369,6 @@ void RGWPutACLs::execute()
obj.init(s->bucket, s->object_str);
rgwstore->set_atomic(s->obj_ctx, obj);
ret = rgwstore->set_attr(s->obj_ctx, obj, RGW_ATTR_ACL, bl);
-
-done:
- free(orig_data);
- free(new_data);
-
- send_response();
}
int RGWInitMultipart::verify_permission()