Merge "[GWP-ASan] Use recoverable everywhere" into main

This commit is contained in:
Mitch Phillips 2024-04-10 09:30:58 +00:00 committed by Gerrit Code Review
commit 4435aff516
2 changed files with 11 additions and 7 deletions

View file

@ -258,14 +258,14 @@ void SetDefaultGwpAsanOptions(Options* options, unsigned* process_sample_rate,
options->Backtrace = android_unsafe_frame_pointer_chase;
options->SampleRate = kDefaultSampleRate;
options->MaxSimultaneousAllocations = kDefaultMaxAllocs;
options->Recoverable = true;
GwpAsanRecoverable = true;
*process_sample_rate = 1;
if (mallopt_options.desire == Action::TURN_ON_WITH_SAMPLING) {
if (mallopt_options.desire == Action::TURN_ON_WITH_SAMPLING ||
mallopt_options.desire == Action::TURN_ON_FOR_APP_SAMPLED_NON_CRASHING) {
*process_sample_rate = kDefaultProcessSampling;
} else if (mallopt_options.desire == Action::TURN_ON_FOR_APP_SAMPLED_NON_CRASHING) {
*process_sample_rate = kDefaultProcessSampling;
options->Recoverable = true;
GwpAsanRecoverable = true;
} else {
*process_sample_rate = 1;
}
}
@ -403,7 +403,7 @@ bool GetGwpAsanOptions(Options* options, unsigned* process_sample_rate,
/* default */ kDefaultMaxAllocs / frequency_multiplier;
}
bool recoverable = false;
bool recoverable = true;
if (GetGwpAsanBoolOption(&recoverable, mallopt_options, kRecoverableSystemSysprop,
kRecoverableAppSysprop, kRecoverableTargetedSyspropPrefix,
kRecoverableEnvVar, "recoverable")) {

View file

@ -152,6 +152,10 @@ typedef struct {
// mode, and bug reports will be created by debuggerd, however the process
// will recover and continue to function as if the memory safety bug wasn't
// detected.
//
// In Android 15, this is the same as TURN_ON_WITH_SAMPLING, as GWP-ASan is
// only ever used in non-crashing mode (even for platform executables and
// system apps).
TURN_ON_FOR_APP_SAMPLED_NON_CRASHING,
};