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

Reply via email to