Merge remote branch 'origin/maint-0.2.2'

This commit is contained in:
Nick Mathewson 2011-02-03 14:21:14 -05:00
commit a6c811313a
3 changed files with 32 additions and 0 deletions

5
changes/bug2358 Normal file
View File

@ -0,0 +1,5 @@
o Minor features
- Enable Address Space Layout Randomization (ASLR) and Data Execution
Prevention (DEP) by default on Windows to make it harder for
attackers to exploit vulnerabilities. Patch from John Brooks.

View File

@ -1051,6 +1051,20 @@ AC_SUBST(BINDIR)
LOCALSTATEDIR=`eval echo $localstatedir`
AC_SUBST(LOCALSTATEDIR)
if test "$bwin32" = true; then
# Test if the linker supports the --nxcompat and --dynamicbase options
# for Windows
save_LDFLAGS="$LDFLAGS"
LDFLAGS="-Wl,--nxcompat -Wl,--dynamicbase"
AC_MSG_CHECKING([whether the linker supports DllCharacteristics])
AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
[AC_MSG_RESULT([yes])]
[save_LDFLAGS="$save_LDFLAGS $LDFLAGS"],
[AC_MSG_RESULT([no])]
)
LDFLAGS="$save_LDFLAGS"
fi
# Set CFLAGS _after_ all the above checks, since our warnings are stricter
# than autoconf's macros like.
if test "$GCC" = yes; then

View File

@ -2419,6 +2419,19 @@ tor_main(int argc, char *argv[])
}
#endif
#ifdef MS_WINDOWS
/* Call SetProcessDEPPolicy to permanently enable DEP.
The function will not resolve on earlier versions of Windows,
and failure is not dangerous. */
HMODULE hMod = GetModuleHandleA("Kernel32.dll");
if (hMod) {
typedef BOOL (WINAPI *PSETDEP)(DWORD);
PSETDEP setdeppolicy = (PSETDEP)GetProcAddress(hMod,
"SetProcessDEPPolicy");
if (setdeppolicy) setdeppolicy(1); /* PROCESS_DEP_ENABLE */
}
#endif
update_approx_time(time(NULL));
tor_threads_init();
init_logging();