On Fri, Jan 03, 2014 at 12:17:26AM +0100, intrigeri wrote: > Control: reassign -1 psi-plus-plugins 0.16.262-1 > Control: retitle -1 Sends malformed OTRv3 messages > > Hi, > > Boris Pek wrote (28 Dec 2013 14:55:59 GMT) : > > As I know this is the problem in libotr >= 4.0.0. > > According to one of the lead OTR developers (who happens to know quite > a bit about what a well-formed OTR message looks like, as you may > guess), it was rather caused by a buggy implementation of the OTRv3 > protocol in Psi+: > > Ian Goldberg wrote (28 Dec 2013 15:45:09 GMT) : > > See > > http://lists.cypherpunks.ca/pipermail/otr-users/2013-November/002392.html > > => reassigning to psi-plus-plugins version that exposes this bug. > I'll let you massage the found / fixed BTS metadata to indicate in > which specific version workaround'ed this problem. > > Note that Ian suggests that it might be useful to debug and fix this > properly in Psi+, instead of disabling OTRv3 support: > > Ian Goldberg wrote (28 Dec 2013 15:45:09 GMT) : > > For some reason, psi+ (before the workaround that removes OTRv3 support) > > was sending messages with a sender instance of 0. If someone could do a > > trace in psi+ to see why that was happening, it would pinpoint the > > problem.
To be clear, it *could* still be a bug in libotr. But since the only client we've seen that has this "sender instance 0" issue is psi+, regardless of where the flaw is, tracing the (pre-workaround) version of psi+ to find what is failing to set the sender instance seems like the right course of action. What's *supposed* to happen is that when a message is received, and otrl_message_receving is called by psi+, then inside libotr, the appropriate ConnContext is found, and if there's no sender instance yet set on it, the client's create_instag callback is called. If there is no such callback defined (which, looking at psi+, I don't see one), then libotr will just create a random instance tag. (This is the populate_context_instag function in libotr:src/message.c) So the question is: why, when the Commit message is received, is libotr failing to create a sender instance value for the newly created child context? (This should be happening in libotr:src/message.c:965.) A breakpoint in otrl_message_receiving when the bug gets triggered in the old version of psi+ should be elucidating. Thanks, - Ian -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org