From 35049e6399ff78f504a7b0682bf7ec3acd778441 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 (cherry picked from commit 71ef3af870e5789e71480682f11a883ff3a673e7) --- 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 eb30f3e663e..2d82234e4b2 100644 --- a/src/rgw/services/svc_user_rados.cc +++ b/src/rgw/services/svc_user_rados.cc @@ -963,7 +963,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.47.3