From fcbe09dae5c3c643492c58fb16bc705114138c63 Mon Sep 17 00:00:00 2001 From: yuliyang Date: Mon, 20 May 2019 18:07:41 +0800 Subject: [PATCH] rgw: fix rgw crash and set correct error code Signed-off-by: yuliyang --- src/rgw/rgw_rest_s3.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 424f42f87f0..1a90e8d47e4 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; } -- 2.39.5