]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix sts memory leak 42803/head
authoryuliyang_yewu <yuliyang_yewu@cmss.chinamobile.com>
Tue, 17 Aug 2021 03:04:02 +0000 (11:04 +0800)
committeryuliyang_yewu <yuliyang_yewu@cmss.chinamobile.com>
Tue, 17 Aug 2021 03:04:14 +0000 (11:04 +0800)
fix https://tracker.ceph.com/issues/52290

Signed-off-by: yuliyang_yewu <yuliyang_yewu@cmss.chinamobile.com>
src/rgw/rgw_rest_s3.cc
src/rgw/rgw_sts.cc

index 4ca77ee6ddf5f19c8b0861300742e0d316ff33b2..7ef83badabe09198af158e3150b9039df25a3c2d 100644 (file)
@@ -6014,7 +6014,7 @@ rgw::auth::s3::STSEngine::get_session_token(const DoutPrefixProvider* dpp, const
     return -EINVAL;
   }
   string error;
-  auto* keyhandler = cryptohandler->get_key_handler(secret, error);
+  std::unique_ptr<CryptoKeyHandler> keyhandler(cryptohandler->get_key_handler(secret, error));
   if (! keyhandler) {
     return -EINVAL;
   }
index fdaec2f6991dc25a151790d8de60b6c67f17f299..6cccaf03265f18abcd74b3ae0ac609158ce92605 100644 (file)
@@ -81,7 +81,7 @@ int Credentials::generateCredentials(CephContext* cct,
     return ret;
   }
   string error;
-  auto* keyhandler = cryptohandler->get_key_handler(secret, error);
+  std::unique_ptr<CryptoKeyHandler> keyhandler(cryptohandler->get_key_handler(secret, error));
   if (! keyhandler) {
     ldout(cct, 0) << "ERROR: No Key handler found !" << dendl;
     return -EINVAL;