]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix sts memory leak 43348/head
authoryuliyang_yewu <yuliyang_yewu@cmss.chinamobile.com>
Tue, 17 Aug 2021 03:04:02 +0000 (11:04 +0800)
committerCory Snyder <csnyder@iland.com>
Wed, 29 Sep 2021 14:38:29 +0000 (10:38 -0400)
fix https://tracker.ceph.com/issues/52290

Signed-off-by: yuliyang_yewu <yuliyang_yewu@cmss.chinamobile.com>
(cherry picked from commit ef921bcdaa78d33ed0611a60ec58826d8e6ccb45)

src/rgw/rgw_rest_s3.cc
src/rgw/rgw_sts.cc

index 204706b4bee9d9782ccfd569e86b32082fee5481..33ec35c1cfa85be8e8101e79690f13de3c34f5d2 100644 (file)
@@ -5820,7 +5820,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 741c16d397c011d4fec55f90d4485d92cb0cc46b..bb125cdc60b31dd010657dd2570f3051a90715be 100644 (file)
@@ -79,7 +79,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;