From 01a0f2d3b7da523e09881f9134e07c1c1caeda02 Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Fri, 22 Nov 2013 18:00:39 +0000 Subject: [PATCH] mon: OSDMonitor: don't rely on client-side validation for command arguments Signed-off-by: Joao Eduardo Luis --- src/mon/OSDMonitor.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index e757cfd798bc5..a3ec269dcef6d 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -3798,7 +3798,11 @@ bool OSDMonitor::prepare_command_impl(MMonCommand *m, newcrush.set_tunables_optimal(); } else if (profile == "default") { newcrush.set_tunables_default(); - } + } else { + ss << "unrecognized profile '" << profile << "'"; + err = -EINVAL; + goto reply; + } pending_inc.crush.clear(); newcrush.encode(pending_inc.crush); ss << "adjusted tunables profile to " << profile; @@ -3992,6 +3996,10 @@ bool OSDMonitor::prepare_command_impl(MMonCommand *m, return prepare_set_flag(m, CEPH_OSDMAP_NODEEP_SCRUB); else if (key == "notieragent") return prepare_set_flag(m, CEPH_OSDMAP_NOTIERAGENT); + else { + ss << "unrecognized flag '" << key << "'"; + err = -EINVAL; + } } else if (prefix == "osd unset") { string key; @@ -4016,6 +4024,10 @@ bool OSDMonitor::prepare_command_impl(MMonCommand *m, return prepare_unset_flag(m, CEPH_OSDMAP_NODEEP_SCRUB); else if (key == "notieragent") return prepare_unset_flag(m, CEPH_OSDMAP_NOTIERAGENT); + else { + ss << "unrecognized flag '" << key << "'"; + err = -EINVAL; + } } else if (prefix == "osd cluster_snap") { // ** DISABLE THIS FOR NOW ** -- 2.39.5