Skip to content
  • Tor Lillqvist's avatar
    Recuce DLL hijack risk on Windows · 6ddef375
    Tor Lillqvist authored
    Don't call LoadLibrary() on shell32.dll or kernel32.dll. kernel32.dll
    is always loaded. Shell32.dll is also already loaded as glib links to
    functions in it. So just call GetModuleHandle() on them.
    
    For mlang.dll in win_iconv.c and winhttp.dll in gwinhttpvfs.c, always
    try loading them from a complete path, from the Windows system
    directory.
    
    Use the "tool help" API to enumerate modules in gmodule-win32.c. It is
    present in all Windows versions since Windows 2000, which is all we
    support anyway. Thus no need to look that API up dynamically. Just
    link to it normally. We can bin the fallback code that attempts to use
    the psapi API.
    6ddef375