[Bug 37034] Stars!: Crashes on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Aug 5 05:57:37 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=37034

--- Comment #2 from planetbeing at gmail.com ---
Found the real reason for this. The space was reserved by the WINE_DOS segment.
However, due to ASLR on Mac, that segment is always put into a random location
and does not start at 0x1000 as expected. It seems to me that the correction
solution is to reserve those segments correcting for the ASLR slide. The
previous patch helped but was unreliable. This new patch seems to have solved
the problem for good.

diff --git a/loader/main.c b/loader/main.c
index ac67290..80e5523 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -42,6 +42,7 @@
 #include "main.h"

 #ifdef __APPLE__
+#include <mach-o/dyld.h>

 #ifndef __clang__
 __asm__(".zerofill WINE_DOS, WINE_DOS, ___wine_dos, 0x40000000");
@@ -63,6 +64,7 @@ static const struct wine_preload_info
wine_main_preload_info[] =

 static inline void reserve_area( void *addr, size_t size )
 {
+    addr = (void*)((uintptr_t)addr - _dyld_get_image_vmaddr_slide(0));
     wine_anon_mmap( addr, size, PROT_NONE, MAP_FIXED | MAP_NORESERVE );
     wine_mmap_add_reserved_area( addr, size );
 }

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list