mgmt: fix Dispatcher::processControlCommandInterest memory error

refs #4059

Change-Id: I6655662f925bc5f40a2a2ec2b258a4accc29d58b
diff --git a/src/mgmt/dispatcher.hpp b/src/mgmt/dispatcher.hpp
index 7df61f7..a8b30b4 100644
--- a/src/mgmt/dispatcher.hpp
+++ b/src/mgmt/dispatcher.hpp
@@ -291,7 +291,7 @@
   typedef std::function<void(const std::string& requester,
                              const Name& prefix,
                              const Interest& interest,
-                             const ControlParameters*)> AuthorizationAcceptedCallback;
+                             const shared_ptr<ControlParameters>&)> AuthorizationAcceptedCallback;
 
   typedef std::function<void(RejectReply act,
                              const Interest& interest)> AuthorizationRejectedCallback;
@@ -399,7 +399,7 @@
   processAuthorizedControlCommandInterest(const std::string& requester,
                                           const Name& prefix,
                                           const Interest& interest,
-                                          const ControlParameters* parameters,
+                                          const shared_ptr<ControlParameters>& parameters,
                                           const ValidateParameters& validate,
                                           const ControlCommandHandler& handler);
 
@@ -484,11 +484,11 @@
                               const ControlCommandHandler& handler)
 {
   if (!m_topLevelPrefixes.empty()) {
-    throw std::domain_error("one or more top-level prefix has been added");
+    BOOST_THROW_EXCEPTION(std::domain_error("one or more top-level prefix has been added"));
   }
 
   if (isOverlappedWithOthers(relPrefix)) {
-    throw std::out_of_range("relPrefix overlaps with another relPrefix");
+    BOOST_THROW_EXCEPTION(std::out_of_range("relPrefix overlaps with another relPrefix"));
   }
 
   ControlParametersParser parser =