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",
|
"canned_fs_config.cpp",
|
||||||
"iosched_policy.cpp",
|
"iosched_policy.cpp",
|
||||||
"load_file.cpp",
|
"load_file.cpp",
|
||||||
|
"memory.cpp",
|
||||||
"native_handle.cpp",
|
"native_handle.cpp",
|
||||||
"properties.cpp",
|
"properties.cpp",
|
||||||
"record_stream.cpp",
|
"record_stream.cpp",
|
||||||
|
@ -200,6 +201,9 @@ cc_library {
|
||||||
"uevent.cpp",
|
"uevent.cpp",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
bionic: {
|
||||||
|
header_libs: ["bionic_libc_platform_headers"],
|
||||||
|
},
|
||||||
|
|
||||||
android_arm: {
|
android_arm: {
|
||||||
sanitize: {
|
sanitize: {
|
||||||
|
|
|
@ -28,6 +28,9 @@ extern "C" {
|
||||||
size_t strlcpy(char *dst, const char *src, size_t size);
|
size_t strlcpy(char *dst, const char *src, size_t size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Disables memory mitigations for the entire process, and logs appropriately.
|
||||||
|
void process_disable_memory_mitigations();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#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