From: Casey Bodley Date: Thu, 20 Jun 2019 17:10:31 +0000 (-0400) Subject: Merge pull request #28172 from joke-lee/rgw-sts-bad-token X-Git-Tag: v15.1.0~2411 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=891fc11670e7b2d80279efb24dabbfd5fb8cb29b;p=ceph-ci.git Merge pull request #28172 from joke-lee/rgw-sts-bad-token rgw: fix rgw crash and set correct error code Reviewed-by: Matt Benjamin Reviewed-by: Pritha Srivastava --- 891fc11670e7b2d80279efb24dabbfd5fb8cb29b diff --cc src/rgw/rgw_rest_s3.cc index ae1065160ad,1a90e8d47e4..67bd8f300a0 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@@ -4611,12 -4474,17 +4611,17 @@@ rgw::auth::s3::STSEngine::get_session_t ret = keyhandler->decrypt(en_input, dec_output, &error); if (ret < 0) { - ldout(cct, 0) << "ERROR: Decryption failed: " << error << dendl; + ldpp_dout(dpp, 0) << "ERROR: Decryption failed: " << error << dendl; return -EPERM; } else { - dec_output.append('\0'); - auto iter = dec_output.cbegin(); - decode(token, iter); + try { + dec_output.append('\0'); + auto iter = dec_output.cbegin(); + decode(token, iter); + } catch (const buffer::error& e) { + ldout(cct, 0) << "ERROR: decode SessionToken failed: " << error << dendl; + return -EINVAL; + } } return 0; }