From: yuliyang Date: Mon, 20 May 2019 10:07:41 +0000 (+0800) Subject: rgw: fix rgw crash and set correct error code X-Git-Tag: v15.1.0~2411^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fcbe09dae5c3c643492c58fb16bc705114138c63;p=ceph.git rgw: fix rgw crash and set correct error code Signed-off-by: yuliyang --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 424f42f87f06..1a90e8d47e41 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -4477,9 +4477,14 @@ rgw::auth::s3::STSEngine::get_session_token(const boost::string_view& session_to ldout(cct, 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; }