Skip to content

Commit 4e3f6ef

Browse files
ismaildscho
authored andcommitted
Enable DEP and ASLR
Enable DEP (Data Execution Prevention) and ASLR (Address Space Layout Randomization) support. This applies to both 32bit and 64bit builds and makes it substantially harder to exploit security holes in Git by offering a much more unpredictable attack surface. ASLR interferes with GDB's ability to set breakpoints. A similar issue holds true when compiling with -O2 (in which case single-stepping is messed up because GDB cannot map the code back to the original source code properly). Therefore we simply enable ASLR only when an optimization flag is present in the CFLAGS, using it as an indicator that the developer does not want to debug in GDB anyway. Signed-off-by: İsmail Dönmez <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 6637a1c commit 4e3f6ef

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

config.mak.uname

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,12 @@ else
547547
ifeq ($(shell expr "$(uname_R)" : '2\.'),2)
548548
# MSys2
549549
prefix = /usr/
550+
# Enable DEP
551+
BASIC_LDFLAGS += -Wl,--nxcompat
552+
# Enable ASLR (unless debugging)
553+
ifneq (,$(findstring -O,$(CFLAGS)))
554+
BASIC_LDFLAGS += -Wl,--dynamicbase
555+
endif
550556
ifeq (MINGW32,$(MSYSTEM))
551557
prefix = /mingw32
552558
BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup

0 commit comments

Comments
 (0)