[OTR-dev] Active fingerprint context pointer possible issue

Ian Goldberg ian at cypherpunks.ca
Wed Nov 21 09:04:52 EST 2012


On Tue, Nov 20, 2012 at 09:24:17PM -0500, David Goulet wrote:
> Hi everyone,
> 
> I came across an unexpected behavior that can be due to my bad
> understanding or a potential bug so I need help on this one.
> 
> The Fingerprint struct contains this:
> 
> 	struct context *context;  /* The context to which we belong */
> 
> Of what I can understand, for a given context pointer (ConnContext
> *ctx), this is suppose to be equal:
> 
> 	ctx == ctx->active_fingerprint->context
> 
> I found out that this is not exactly true. In the "gone_secure"
> callback, the context is passed as an argument but the above
> supposition is not true i.e. the active_fingerprint->context is NOT
> the same as the argument context but still a valid ConnContext pointer.
> 
> The issue here is if someone is trying to look the OtrlMessageState
> using the active fingerprint context, it's set to
> OTRL_MSGSTATE_PLAINTEXT but the gone_secure context is of course set
> to encrypted.
> 
> So, am I missing something here ?
> 
> I can confirm this with the pidgin-otr plugin and the code I'm doing
> as well.
> 
> Thanks a lot people!
> David

David,

Is the issue that active_fingerprint->context is pointing to the master
context?  (i.e. is ctx->m_context == ctx->active_fingerprint->context ?)
If not, can you tell where it is pointing?

Thanks,

   - Ian



More information about the OTR-dev mailing list