aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2016-12-21 09:52:28 -0800
committerPaul Eggert2016-12-21 09:57:05 -0800
commitcf6ce9a1fe320ebe5b238af5f7af9416ac954855 (patch)
tree492441277954ab7829df6ce9920986ebb9855f6e /src
parent8661313efd5fd5b0a27fe82f276a1ff862646424 (diff)
downloademacs-cf6ce9a1fe320ebe5b238af5f7af9416ac954855.tar.gz
emacs-cf6ce9a1fe320ebe5b238af5f7af9416ac954855.zip
Port dumping better to WSL
Problem reported by Angelo Graziosi in: http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00822.html * src/sysdep.c (disable_address_randomization): Detect buggy platforms where 'personality' always returns 0.
Diffstat (limited to 'src')
-rw-r--r--src/sysdep.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index 96c9e538409..86d420f66c4 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -144,11 +144,16 @@ static const int baud_convert[] =
144bool 144bool
145disable_address_randomization (void) 145disable_address_randomization (void)
146{ 146{
147 bool disabled = false;
148 int pers = personality (0xffffffff); 147 int pers = personality (0xffffffff);
149 disabled = (! (pers & ADDR_NO_RANDOMIZE) 148 if (pers < 0)
150 && 0 <= personality (pers | ADDR_NO_RANDOMIZE)); 149 return false;
151 return disabled; 150 int desired_pers = pers | ADDR_NO_RANDOMIZE;
151
152 /* Call 'personality' twice, to detect buggy platforms like WSL
153 where 'personality' always returns 0. */
154 return (pers != desired_pers
155 && personality (desired_pers) == pers
156 && personality (0xffffffff) == desired_pers);
152} 157}
153#endif 158#endif
154 159