Skip to content
  • Reid Kleckner's avatar
    [msan] intercept dlopen and clear shadow for it · c9d382b5
    Reid Kleckner authored
    Summary:
    The loader does not call mmap() through the PLT because it has to
    bootstrap the process before libc is present.  Hooking dlopen() isn't
    enough either because the loader runs module initializers before
    returning, and they could run arbitrary msan instrumented code.
    
    If msandr is present, then we can intercept the mmaps from dlopen at the
    syscall layer and clear the shadow there.  If msandr is missing, we
    clear the shadow after dlopen() and hope any initializers are trivial.
    
    Reviewers: eugenis
    
    CC: kcc, llvm-commits
    
    Differential Revision: http://llvm-reviews.chandlerc.com/D509
    
    llvm-svn: 176818
    c9d382b5
Loading