Enable Data Execution Protection and Address Space Layout Randomization on Windows
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest2 patches 0 repliesNew
- v12 patches 10 repliesSuperseded
Changes in v2 from the cover letter
* When determining whether we build with optimization, -O0 and -Og are explicitly ignored.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/2 | mingw: do not let ld strip relocationsconfig.mak.uname | +2 | 0 replies | |
| 2/2 | mingw: enable DEP and ASLRconfig.mak.uname | +6 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 0/2] Enable Data Execution Protection and Address Space Layout Randomization on Windows
These two techniques make it harder to come up with exploits, by reducing what is commonly called the "attack surface" in security circles: by making the addresses less predictable, and by making it harder to inject data that is then (mis-)interpreted as code, this hardens Git's executables on Windows.
These patches have been carried in Git for Windows for over 3 years, and should therefore be considered battle-tested.
Changes since v1:
* When determining whether we build with optimization, -O0 and -Og are explicitly ignored.
İsmail Dönmez (2):
mingw: do not let ld strip relocations
mingw: enable DEP and ASLR
config.mak.uname | 8 ++++++++ 1 file changed, 8 insertions(+)
base-commit: 83232e38648b51abbcbdb56c94632b6906cc85a6
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-134%2Fdscho%2Faslr-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-134/dscho/aslr-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/134
Range-diff vs v1:
1: e6acdba586 = 1: 828913e96c mingw: do not let ld strip relocations
2: e142c1396e ! 2: 9f1da73829 mingw: enable DEP and ASLR
@@ -21,13 +21,13 @@
--- a/config.mak.uname
+++ b/config.mak.uname
@@
- ifeq ($(shell expr "$(uname_R)" : '2\.'),2)
+ ifneq ($(shell expr "$(uname_R)" : '1\.'),2)
# MSys2
prefix = /usr/
+ # Enable DEP
+ BASIC_LDFLAGS += -Wl,--nxcompat
+ # Enable ASLR (unless debugging)
-+ ifneq (,$(findstring -O,$(CFLAGS)))
++ ifneq (,$(findstring -O,$(filter-out -O0 -Og,$(CFLAGS))))
+ BASIC_LDFLAGS += -Wl,--dynamicbase
+ endif
ifeq (MINGW32,$(MSYSTEM))Signature · 1 line
gitgitgadget