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
commit9b7aff77a610a269315a5e3706bc2310c4cf0978 (patch)
tree809a05888b9a4a7e07993ac4094cab71a7ef38cd /cpp/src
parent6a0b934e2d53e1ad0370179874263f4a89b6e1f8 (diff)
downloadqpid-python-9b7aff77a610a269315a5e3706bc2310c4cf0978.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();