From 71ef3af870e5789e71480682f11a883ff3a673e7 Mon Sep 17 00:00:00 2001 From: Cory Snyder Date: Wed, 2 Feb 2022 04:46:59 -0500 Subject: [PATCH] rgw: fix segfault in UserAsyncRefreshHandler::init_fetch Fixes a segfault that was occuring in error handling code of UserAsyncRefreshHandler::init_fetch. When ruser->read_stats_async returned an error code, the instance of UserAsyncRefreshHandler had already been deallocated in RGWSI_User_RADOS::read_stats_async and a segmentation fault occurs when attempting to print a member variable in error logs. This commit removes the extra ref count drop since the ref is properly dropped upstream in RGWQuotaCache::async_refresh error handling logic. Fixes: https://tracker.ceph.com/issues/54112 Signed-off-by: Cory Snyder --- src/rgw/services/svc_user_rados.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/rgw/services/svc_user_rados.cc b/src/rgw/services/svc_user_rados.cc index b2f8f9665e092..88dfca285a7c7 100644 --- a/src/rgw/services/svc_user_rados.cc +++ b/src/rgw/services/svc_user_rados.cc @@ -973,7 +973,6 @@ int RGWSI_User_RADOS::read_stats_async(const DoutPrefixProvider *dpp, RGWSI_Meta RGWGetUserStatsContext *cb = new RGWGetUserStatsContext(_cb); int r = cls_user_get_header_async(dpp, user_str, cb); if (r < 0) { - _cb->put(); delete cb; return r; } -- 2.39.5