Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <390CE752059EB848A71F4F676EBAB76D3AC26355@ORSMSX114.amr.corp.intel.com>
Date: Fri, 28 Oct 2016 19:56:18 +0000
From: "LeMay, Michael" <michael.lemay@...el.com>
To: "musl@...ts.openwall.com" <musl@...ts.openwall.com>
Subject: [RFC PATCH v2 1/4] disable check for buggy brk implementations when
 SafeStack is enabled

The check relies on comparing the addresses of stack-allocated objects
to addresses returned by the brk syscall.  SafeStack moves the
allocations to the unsafe stack, breaking the check.  This patch
disables the check when SafeStack is enabled.

Signed-off-by: Michael LeMay <michael.lemay@...el.com>
---
 src/malloc/expand_heap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/malloc/expand_heap.c b/src/malloc/expand_heap.c
index d8c0be7..af51451 100644
--- a/src/malloc/expand_heap.c
+++ b/src/malloc/expand_heap.c
@@ -13,6 +13,7 @@
 
 static int traverses_stack_p(uintptr_t old, uintptr_t new)
 {
+#if !defined(__has_feature) || !__has_feature(safe_stack)
 	const uintptr_t len = 8<<20;
 	uintptr_t a, b;
 
@@ -23,6 +24,7 @@ static int traverses_stack_p(uintptr_t old, uintptr_t new)
 	b = (uintptr_t)&b;
 	a = b > len ? b-len : 0;
 	if (new>a && old<b) return 1;
+#endif
 
 	return 0;
 }
-- 
2.7.4

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.