From: Sage Weil Date: Wed, 17 Jul 2019 14:44:49 +0000 (-0500) Subject: mon/MgrMonitor: fix null deref when invalid formatter is specified X-Git-Tag: v13.2.7~151^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fa41e168a1fb7cc4009a74abbe29a64d4cd57de6;p=ceph.git mon/MgrMonitor: fix null deref when invalid formatter is specified Fixes: https://tracker.ceph.com/issues/40804 Signed-off-by: Sage Weil (cherry picked from commit b3cc451fc299c7d377196aaa9058026dad231721) --- diff --git a/src/mon/MgrMonitor.cc b/src/mon/MgrMonitor.cc index 6b4eab48fdc..2bf1866a8d8 100644 --- a/src/mon/MgrMonitor.cc +++ b/src/mon/MgrMonitor.cc @@ -682,8 +682,9 @@ bool MgrMonitor::preprocess_command(MonOpRequestRef op) } string format; - cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - boost::scoped_ptr f(Formatter::create(format)); + cmd_getval(g_ceph_context, cmdmap, "format", format); + boost::scoped_ptr f(Formatter::create(format, "json-pretty", + "json-pretty")); string prefix; cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); @@ -776,14 +777,10 @@ bool MgrMonitor::preprocess_command(MonOpRequestRef op) } f->flush(rdata); } else if (prefix == "mgr versions") { - if (!f) - f.reset(Formatter::create("json-pretty")); count_metadata("ceph_version", f.get()); f->flush(rdata); r = 0; } else if (prefix == "mgr count-metadata") { - if (!f) - f.reset(Formatter::create("json-pretty")); string field; cmd_getval(g_ceph_context, cmdmap, "property", field); count_metadata(field, f.get());