]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix use-after-free in mds mon blacklisting
authorSage Weil <sage@newdream.net>
Fri, 20 Nov 2009 22:07:16 +0000 (14:07 -0800)
committerSage Weil <sage@newdream.net>
Fri, 20 Nov 2009 22:07:16 +0000 (14:07 -0800)
src/mon/MDSMonitor.cc

index a9f52b65af7c6e7dbfc1b8c469c58d395ef583de..8e7008139ea677133cf9a5e451b96df873f764ac 100644 (file)
@@ -664,7 +664,6 @@ void MDSMonitor::tick()
          pending_mdsmap.up[info.rank] = sgid;
          pending_mdsmap.last_failure = pending_mdsmap.epoch;
        }
-       pending_mdsmap.mds_info.erase(gid);
 
        if (si.state > 0) {
          // blacklist
@@ -673,6 +672,7 @@ void MDSMonitor::tick()
          mon->osdmon()->blacklist(info.addr, until);
          propose_osdmap = true;
        }
+       pending_mdsmap.mds_info.erase(gid);
        
        do_propose = true;
       } else if (info.state == MDSMap::STATE_STANDBY_REPLAY) {