[OTR-dev] Crash when receiving message after canceling encrypted chat (with gdb backtrace)
Ian Goldberg
ian at cypherpunks.ca
Wed Feb 9 09:33:44 EST 2005
On Wed, Feb 09, 2005 at 02:39:46AM -0600, Evan Schoenberg wrote:
> A messages B. OTR session begins.
> A then cancels encryption. B is told that A is no longer using
> encryption.
> Without canceling encryption, B messages A. B is told that he sent
> encrypted data to A when A wasn't expecting it. B then promptly
> crashes.
> (meanwhile, A is told that an encrypted message was received but
> unreadable... and then the OTR connected callback is called again,
> indicating I suppose that encryption was re-negotiated).
I can't replicate the crash. See below.
> Here's the backtrace from B.
>
> (gdb) bt
> #0 0x9000d280 in strcat ()
> #1 0x075032c0 in otrl_proto_create_data (encmessagep=0xf0130ed4,
> context=0x285de00, msg=0x71de368 "[resent] [resent] [resent] [resent]
> [resent] [resent] [resent] [resent] [resent] [resent] [resent] [resent]
> [resent] [resent] [resent] [resent] [resent] [resent] [resent] [resent]
> [resent] [resent] [r"..., tlvs=0x0) at
> /Users/evands/libgaim/Libraries/libotr/src/proto.c:832
So this makes no sense. The bit that adds "[resent] " to a message
specifically checks to see if it's already there, and if so, doesn't add
it. So I don't see how the above string could be constructed.
Could you watch the value of context->lastmessage and see where the
extra [resent]'s get added?
- Ian
More information about the OTR-dev
mailing list