]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
tools: fix the core dump when get the crushmap do not exist 10451/head
authorsongbaisen <song.baisen@zte.com.cn>
Wed, 27 Jul 2016 02:01:31 +0000 (10:01 +0800)
committersongbaisen <song.baisen@zte.com.cn>
Thu, 28 Jul 2016 05:45:58 +0000 (13:45 +0800)
Signed-off-by:song baisen <song.baisen@zte.com.cn>

src/tools/ceph_monstore_tool.cc

index f9b4696c527d1c6e1d2362801f950f9a019d9de4..347fb9e84d37810e0788ba2b270c6bbc096cd049 100644 (file)
@@ -697,9 +697,11 @@ int main(int argc, char **argv) {
     } else if (map_type == "crushmap") {
       bufferlist tmp;
       r = st.get("osdmap", st.combine_strings("full", v), tmp);
-      OSDMap osdmap;
-      osdmap.decode(tmp);
-      osdmap.crush->encode(bl);
+      if (r >= 0) {
+        OSDMap osdmap;
+        osdmap.decode(tmp);
+        osdmap.crush->encode(bl);
+      }
     } else {
       r = st.get(map_type, v, bl);
     }