[opensource-dev] Review Request: STORM-1546 Crash in LLSecAPIBasicHandler::getCertificateStore

Vadim ProductEngine vsavchuk at productengine.com
Tue Aug 9 12:55:10 PDT 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://codereview.secondlife.com/r/435/
-----------------------------------------------------------

Review request for Viewer and David Parks.


Summary
-------

Fixed a crash caused by a race condition in LLRefCount.

Reason:
secapiSSLCertVerifyCallback() seems to be called simultaneously by multiple threads,
which causes a race condition in LLRefCount::ref/unref() methods.
The reference counter in LLSecAPIBasicHandler::mStore goes to zero, and the object gets destroyed.

Fix:
Derive LLCertificateStore from LLThreadSafeRefCount instead of LLRefCount,
which should fix the race condition.

Note:
The LLThreadSafeRefCount constructor is private, so we have to wrap instances of the class with LLPointer.


This addresses bug STORM-1546.
    http://jira.secondlife.com/browse/STORM-1546


Diffs
-----

  indra/newview/llsecapi.h 8f15e5a13e8f 
  indra/newview/llsechandler_basic.cpp 8f15e5a13e8f 

Diff: http://codereview.secondlife.com/r/435/diff


Testing
-------


Thanks,

Vadim

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20110809/8ede53e5/attachment.htm 


More information about the opensource-dev mailing list