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

(cherry picked from commit 930a7c2)
  • Loading branch information
emaste committed Feb 18, 2022
1 parent cac751f commit ae6cb17
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 ae6cb17

Please sign in to comment.