From: Josh Durgin Date: Fri, 7 Jan 2022 18:37:13 +0000 (-0500) Subject: mon/OSDMonitor: avoid null dereference if stats are not available X-Git-Tag: v15.2.16~13^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F44700%2Fhead;p=ceph.git mon/OSDMonitor: avoid null dereference if stats are not available Not confirmed yet whether this was the issue in the bug referenced below, however it's a necessary defensive check for the 'osd pool get-quota' command. All other uses of get_pool_stats() already handle this case. Related-to: https://tracker.ceph.com/issues/53740 Signed-off-by: Josh Durgin (cherry picked from commit 9c8392be33a574f15bc35b8f49e319af50d99e90) Conflicts: src/mon/OSDMonitor.cc Cherry-pick notes: - mon variable was a pointer in Octopus --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 3e77a48ea40..6865bcf10cf 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -6474,6 +6474,11 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } const pg_pool_t *p = osdmap.get_pg_pool(poolid); const pool_stat_t* pstat = mon->mgrstatmon()->get_pool_stat(poolid); + if (!pstat) { + ss << "no stats for pool '" << pool_name << "'"; + r = -ENOENT; + goto reply; + } const object_stat_sum_t& sum = pstat->stats.sum; if (f) { f->open_object_section("pool_quotas");