[
https://issues.apache.org/jira/browse/AMQ-4258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish reassigned AMQ-4258:
---------------------------------
Assignee: Hiram Chirino
@Hiram, can you take a look at this one.
> Endless loop when received incorrect AMQP message
> -------------------------------------------------
>
> Key: AMQ-4258
> URL: https://issues.apache.org/jira/browse/AMQ-4258
> Project: ActiveMQ
> Issue Type: Bug
> Components: Transport
> Affects Versions: 5.8.0
> Reporter: Robert Balent
> Assignee: Hiram Chirino
> Priority: Critical
> Attachments: exception.txt, patch1.txt, patch2.txt
>
>
> When you send incorrect message to AMQP transform, it will stuck in endless
> loop and write lot of error messages to console output.
> This way, you can send numbers of incorrect messages and ActiveMQ will create
> new thread for each of them. This way can attacker create thousands of
> threads in few minutes and completely overload server machine.
> Problem is in org.apache.activemq.transport.amqp.AmqpProtocolConverter class.
> It throws exception(exception.txt) and loop never ends:
> Line 158:
> int count = protonTransport.input(frame.data, frame.offset, frame.length);
> Two solutions are possible:
> 1. Add "return" statement to catch block (patch1.txt).
> 2. Run "frame.moveHead(count);" in finally block with some default positive
> count (patch2.txt)
> I would prefer the first variant.
> This happens when you try to send message from client with older version of
> AMQP protocol.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira