Skip to content

Commit

Permalink
compiler-rt: re-exec with ASLR disabled when necessary
Browse files Browse the repository at this point in the history
Some sanitizers (at least msan) currently require ASLR to be disabled.
When we detect that ASLR is enabled, re-exec with it disabled rather
than exiting with an error.  See LLVM GitHub issue 53256 for more
detail: llvm/llvm-project#53256

No objection:	dim
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D33934
  • Loading branch information
emaste authored and bsdjhb committed Mar 2, 2022
2 parents 2435da2 + 930a7c2 commit aff3c02
Showing 1 changed file with 5 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2197,8 +2197,11 @@ void CheckASLR() {
}
if ((aslr_status & PROC_ASLR_ACTIVE) != 0) {
Printf("This sanitizer is not compatible with enabled ASLR "
"and binaries compiled with PIE\n");
Die();
"and binaries compiled with PIE\n"
"ASLR will be disabled and the program re-executed.\n");
int aslr_ctl = PROC_ASLR_FORCE_DISABLE;
CHECK_NE(procctl(P_PID, 0, PROC_ASLR_CTL, &aslr_ctl), -1);
ReExec();
}
#else
// Do nothing
Expand Down

0 comments on commit aff3c02

Please sign in to comment.