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.
This commit is contained in:
Paul Eggert 2016-12-21 09:52:28 -08:00
parent 8661313efd
commit cf6ce9a1fe

View file

@ -144,11 +144,16 @@ static const int baud_convert[] =
bool
disable_address_randomization (void)
{
bool disabled = false;
int pers = personality (0xffffffff);
disabled = (! (pers & ADDR_NO_RANDOMIZE)
&& 0 <= personality (pers | ADDR_NO_RANDOMIZE));
return disabled;
if (pers < 0)
return false;
int desired_pers = pers | ADDR_NO_RANDOMIZE;
/* Call 'personality' twice, to detect buggy platforms like WSL
where 'personality' always returns 0. */
return (pers != desired_pers
&& personality (desired_pers) == pers
&& personality (0xffffffff) == desired_pers);
}
#endif