You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Fraser Adams (JIRA)" <ji...@apache.org> on 2014/03/01 14:43:19 UTC

[jira] [Created] (QPID-5590) It is trivially easy to fatally crash qpidd using a dodgy exchange type in a TopicPolicy

Fraser Adams created QPID-5590:
----------------------------------

             Summary: It is trivially easy to fatally crash qpidd using a dodgy exchange type in a TopicPolicy
                 Key: QPID-5590
                 URL: https://issues.apache.org/jira/browse/QPID-5590
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker
            Reporter: Fraser Adams
            Priority: Blocker


It is trivially easy to fatally crash qpidd using a dodgy exchange type in a TopicPolicy

Steps to reproduce:
1) Start up qpidd
2) Create a TopicPolicy
qpid-config add TopicPolicy header-exchange-* --argument exchange-type=foo
3) Attempt to create a matching node
./drain --connection-options {protocol:amqp1.0} -b localhost -f "header-exchange-test"

qpidd dies saying
"terminate called after throwing an instance of 'qpid::broker::UnknownExchangeTypeException'
Aborted"

It's probably not likely that someone would use "exchange-type=foo" but I stumbled across this problem 'cause I accidentally did "exchange-type=amq.match" when I meant to use headers, that sort of finger trouble is *reasonably* likely and probably shouldn't be causing a fatal crash.

At a guess the best approach might be to do a check on the QMF create TopicPolicy and check a valid exchange type has been specified there, but it's probably safest to also check when resolving link attachment and send the exception back to the client.




--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org