STORM-1546 Crash in LLSecAPIBasicHandler::getCertificateStore
Review Request #435 - Created Aug. 9, 2011 and submitted
| Vadim ProductEngine | Reviewers | ||
| viewer | |||
| STORM-1546 | davep | ||
| None | viewer-development | ||
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.

Other reviews