]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: avoid null dereference if stats are not available 44700/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 19:26:37 +0000 (14:26 -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)

Conflicts:
src/mon/OSDMonitor.cc

Cherry-pick notes:
- mon variable was a pointer in Octopus

src/mon/OSDMonitor.cc

index 3e77a48ea400262133c90b2b00df4608879a3066..6865bcf10cf564c2e1326c640eac0abf36cdb28f 100644 (file)
@@ -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");