[ https://issues.apache.org/jira/browse/PROTON-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13578553#comment-13578553 ]
Ken Giusti commented on PROTON-235: ----------------------------------- Link to related Review Board post: https://reviews.apache.org/r/9447/ > SASL layer can "replicate" inbound SASL frames under some circumstances. > ------------------------------------------------------------------------ > > Key: PROTON-235 > URL: https://issues.apache.org/jira/browse/PROTON-235 > Project: Qpid Proton > Issue Type: Bug > Components: proton-c > Affects Versions: 0.3 > Reporter: Ken Giusti > Assignee: Ken Giusti > Fix For: 0.4 > > > If an inbound SASL frame is fragmented, then the SASL layer incorrectly > re-reads the same frame data. This causes the engine to fail. > Reproducer: > def testFracturedSASL(self): > self.s1.mechanisms("ANONYMOUS") > self.s1.client() > self.t1.trace(Transport.TRACE_FRM) > out = self.t1.output(1024) > print("out=%s" % str(out)) > self.t1.input("AMQP\x03\x01\x00\x00") > out = self.t1.output(1024) > print("out=%s" % str(out)) > self.t1.input("\x00\x00\x00") > out = self.t1.output(1024) > print("out=%s" % str(out)) > > self.t1.input("A\x02\x01\x00\x00\x00S@\xc04\x01\xe01\x06\xa3\x06GSSAPI\x05PLAIN\x0aDIGEST-MD5\x08AMQPLAIN\x08CRAM-MD5\x04NTLM") > out = self.t1.output(1024) > print("out=%s" % str(out)) > self.t1.input("\x00\x00\x00\x10\x02\x01\x00\x00\x00SD\xc0\x03\x01P\x00") > out = self.t1.output(1024) > while out: > print("out=%s" % str(out)) > out = self.t1.output(1024) > When tracing is turned on, SASL will report the following frames as received: > <- SASL > [0x200f0e0:0] <- SASL-MECHANISMS @64 [@PN_SYMBOL[:GSSAPI, :PLAIN, > :"DIGEST-MD5", :AMQPLAIN, :"CRAM-MD5", :NTLM]] > [0x200f0e0:0] <- SASL-MECHANISMS @64 [@PN_SYMBOL[:GSSAPI, :PLAIN, > :"DIGEST-MD5", :AMQPLAIN, :"CRAM-MD5", :NTLM]] > Notice the MECHANISM frame is reported as received twice by the SASL layer, > but it was only read once from the network. -- 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