Fixed CreateShortcut failure on Vista caused by security changes in r6645/2.47
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6684 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
e2db35bf45
commit
0979ab23fc
2 changed files with 16 additions and 2 deletions
|
@ -324,6 +324,14 @@ Released on May 19th, 2013
|
||||||
|
|
||||||
\b Fixed Korean MUI_[UN]TEXT_FINISH_INFO_* (\W{http://sourceforge.net/support/tracker.php?aid=3541515}{bug #3541515})
|
\b Fixed Korean MUI_[UN]TEXT_FINISH_INFO_* (\W{http://sourceforge.net/support/tracker.php?aid=3541515}{bug #3541515})
|
||||||
|
|
||||||
|
\H{v2.49} 2.49
|
||||||
|
|
||||||
|
Released on December 16th, 2015
|
||||||
|
|
||||||
|
\S1{v2.49-cl} Changelog
|
||||||
|
|
||||||
|
\b Fixed CreateShortcut failure on Vista caused by security changes in 2.47
|
||||||
|
|
||||||
\H{v2.48} 2.48
|
\H{v2.48} 2.48
|
||||||
|
|
||||||
Released on December 10th, 2015
|
Released on December 10th, 2015
|
||||||
|
|
|
@ -110,8 +110,14 @@ EXTERN_C void NSISWinMainNOCRT()
|
||||||
// dynamically loaded modules (with relative paths) to just
|
// dynamically loaded modules (with relative paths) to just
|
||||||
// %windir%\System32 and directories added with AddDllDirectory().
|
// %windir%\System32 and directories added with AddDllDirectory().
|
||||||
// This prevents DLL search order attacks (CAPEC-471).
|
// This prevents DLL search order attacks (CAPEC-471).
|
||||||
FARPROC fp = myGetProcAddress(MGA_SetDefaultDllDirectories);
|
DWORD winver = GetVersion();
|
||||||
if (fp) ((BOOL(WINAPI*)(DWORD))fp)(LOAD_LIBRARY_SEARCH_SYSTEM32|LOAD_LIBRARY_SEARCH_USER_DIRS);
|
// CoCreateInstance(CLSID_ShellLink, ...) fails on Vista if SetDefaultDllDirectories is called
|
||||||
|
BOOL avoidwinbug = LOWORD(winver) == MAKEWORD(6, 0);
|
||||||
|
if (!avoidwinbug)
|
||||||
|
{
|
||||||
|
FARPROC fp = myGetProcAddress(MGA_SetDefaultDllDirectories);
|
||||||
|
if (fp) ((BOOL(WINAPI*)(DWORD))fp)(LOAD_LIBRARY_SEARCH_SYSTEM32|LOAD_LIBRARY_SEARCH_USER_DIRS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Because myGetProcAddress now loads dlls with a full path
|
// Because myGetProcAddress now loads dlls with a full path
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue