]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: check 'nonce' validity for cidr ranges
authorGreg Farnum <gfarnum@redhat.com>
Mon, 15 Nov 2021 20:06:50 +0000 (20:06 +0000)
committerGreg Farnum <gfarnum@redhat.com>
Tue, 31 May 2022 23:18:16 +0000 (23:18 +0000)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit 5c903e5b0a48f60dcf644f83478f97136d7dc56c)

src/mon/OSDMonitor.cc

index 2c9b58a54549457a354da6e180d5d931e113e7c3..adf1994c2252688515368ac4dfd07c2d0075046e 100644 (file)
@@ -12711,6 +12711,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
        if (err) {
          goto reply;
        }
+       if ((addr.is_ipv4() && addr.get_nonce() > 32) ||
+           (addr.is_ipv6() && addr.get_nonce() > 128)) {
+         ss << "Too many bits in range for that protocol!";
+         err = -EINVAL;
+         goto reply;
+       }
       } else {
        if (osdmap.require_osd_release >= ceph_release_t::nautilus) {
          // always blocklist type ANY