void RGWRestUserPolicy::dump(Formatter *f) const
{
- encode_json("Policyname", policy_name , f);
- encode_json("Username", user_name , f);
- encode_json("Policydocument", policy, f);
+ encode_json("PolicyName", policy_name , f);
+ encode_json("UserName", user_name , f);
+ encode_json("PolicyDocument", policy, f);
}
void RGWRestUserPolicy::send_response()
s->formatter->close_section();
s->formatter->open_object_section("ListUserPoliciesResult");
bufferlist bl = it->second;
- decode(policies, bl);
+ try {
+ decode(policies, bl);
+ } catch (buffer::error& err) {
+ ldpp_dout(this, 0) << "ERROR: failed to decode user policies" << dendl;
+ op_ret = -EIO;
+ return;
+ }
+ s->formatter->open_object_section("PolicyNames");
for (const auto& p : policies) {
- s->formatter->open_object_section("PolicyNames");
s->formatter->dump_string("member", p.first);
- s->formatter->close_section();
}
s->formatter->close_section();
s->formatter->close_section();
+ s->formatter->close_section();
} else {
ldpp_dout(this, 0) << "ERROR: RGW_ATTR_USER_POLICY not found" << dendl;
op_ret = -ERR_NO_SUCH_ENTITY;