summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2011-01-13 19:12:00 +0000
committerTed Ross <tross@apache.org>2011-01-13 19:12:00 +0000
commit8b256bdb1e55a1c81901b20642d385b23c096677 (patch)
treebe83932981cfa6228c6dd4c0a6ba0c2e35f6b079
parent51b79cafaa57b231f3fd87e29fe190a442bd8a81 (diff)
downloadqpid-python-8b256bdb1e55a1c81901b20642d385b23c096677.tar.gz
Originally, when the broker agent authorized a method call, if the message was too large
to fir in the working buffer, the method was rejected. This change rejects the method only if there is an ACL configured. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1058710 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/management/ManagementAgent.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
index dd303afbbf..cb33887fc8 100644
--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
+++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
@@ -2018,8 +2018,13 @@ bool ManagementAgent::authorizeAgentMessageLH(Message& msg)
string methodName;
string cid;
+ //
+ // If the message is larger than our working buffer size, we can't determine if it's
+ // authorized or not. In this case, return true (authorized) if there is no ACL in place,
+ // otherwise return false;
+ //
if (msg.encodedSize() > MA_BUFFER_SIZE)
- return false;
+ return broker->getAcl() == 0;
msg.encodeContent(inBuffer);
uint32_t bufferLen = inBuffer.getPosition();