Skip to content
Snippets Groups Projects
  • Vadim ProductEngine's avatar
    6a7bbe01
    STORM-1546 FIXED Fixed a crash caused by a race condition in LLRefCount. · 6a7bbe01
    Vadim ProductEngine authored
    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.
    6a7bbe01
    History
    STORM-1546 FIXED Fixed a crash caused by a race condition in LLRefCount.
    Vadim ProductEngine authored
    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.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.