]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: avoid null dereference if stats are not available 44698/head
authorJosh Durgin <jdurgin@redhat.com>
Fri, 7 Jan 2022 18:37:13 +0000 (13:37 -0500)
committerCory Snyder <csnyder@iland.com>
Thu, 20 Jan 2022 18:44:38 +0000 (13:44 -0500)
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 <jdurgin@redhat.com>
(cherry picked from commit 9c8392be33a574f15bc35b8f49e319af50d99e90)

src/mon/OSDMonitor.cc

index 927b8b8af92c2832e0aca57c674d2a31bc5584aa..e050cbe8feff96f546d8bbf23442a9578a2884ed 100644 (file)
@@ -6586,6 +6586,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");