libcutils: API to disable memory mitigations
Convenience API to disable memory mitigations, where we can specify logging and also have a single place to update once a related bug is fixed. Bug: 166675194 Test: use API to disable memory mitigations Change-Id: I4a3529ea1911925c49e31cc3809c2743e401c196
This commit is contained in:
parent
8d96bfa9bd
commit
d22659b8ea
|
@ -158,6 +158,7 @@ cc_library {
|
|||
"canned_fs_config.cpp",
|
||||
"iosched_policy.cpp",
|
||||
"load_file.cpp",
|
||||
"memory.cpp",
|
||||
"native_handle.cpp",
|
||||
"properties.cpp",
|
||||
"record_stream.cpp",
|
||||
|
@ -200,6 +201,9 @@ cc_library {
|
|||
"uevent.cpp",
|
||||
],
|
||||
},
|
||||
bionic: {
|
||||
header_libs: ["bionic_libc_platform_headers"],
|
||||
},
|
||||
|
||||
android_arm: {
|
||||
sanitize: {
|
||||
|
|
|
@ -28,6 +28,9 @@ extern "C" {
|
|||
size_t strlcpy(char *dst, const char *src, size_t size);
|
||||
#endif
|
||||
|
||||
// Disables memory mitigations for the entire process, and logs appropriately.
|
||||
void process_disable_memory_mitigations();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <cutils/memory.h>
|
||||
|
||||
#include <log/log.h>
|
||||
|
||||
#ifdef __BIONIC__
|
||||
#include <bionic/malloc.h>
|
||||
#endif
|
||||
|
||||
void process_disable_memory_mitigations() {
|
||||
bool success = false;
|
||||
#ifdef __BIONIC__
|
||||
// TODO(b/158870657) is fixed and scudo is used globally, we can assert when an
|
||||
// an error is returned.
|
||||
|
||||
success = android_mallopt(M_DISABLE_MEMORY_MITIGATIONS, nullptr, 0);
|
||||
#endif
|
||||
|
||||
if (success) {
|
||||
ALOGI("Disabled memory mitigations for process.");
|
||||
} else {
|
||||
ALOGE("Could not disable memory mitigations for process.");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue