summaryrefslogtreecommitdiff
path: root/cpp/src
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
commit9c16fa21baa3b48772ee1f46e7a14647a032248d (patch)
tree809a05888b9a4a7e07993ac4094cab71a7ef38cd /cpp/src
parentf4c09955551730009ed91ab0b58ab43326c9306b (diff)
downloadqpid-python-9c16fa21baa3b48772ee1f46e7a14647a032248d.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/qpid@1058710 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/management/ManagementAgent.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/cpp/src/qpid/management/ManagementAgent.cpp b/cpp/src/qpid/management/ManagementAgent.cpp
index dd303afbbf..cb33887fc8 100644
--- a/cpp/src/qpid/management/ManagementAgent.cpp
+++ b/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();