Skip to content
  • Anna Zaks's avatar
    [analyzer] Invalidate the region passed to pthread_setspecific() call. · 07de9c12
    Anna Zaks authored
    Make this call an exception in ExprEngine::invalidateArguments:
    'int pthread_setspecific(ptheread_key k, const void *)' stores
    a value into thread local storage. The value can later be retrieved
    with 'void *ptheread_getspecific(pthread_key)'. So even thought the
    parameter is 'const void *', the region escapes through the
    call.
    
    (Here we just blacklist the call in the ExprEngine's default
    logic. Another option would be to add a checker which evaluates
    the call and triggers the call to invalidate regions.)
    
    Teach the Malloc Checker, which treats all system calls as safe about
    the API.
    
    llvm-svn: 151220
    07de9c12
Loading