Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c29cf50c authored by Steven Moreland's avatar Steven Moreland Committed by Automerger Merge Worker
Browse files

Merge "libcutils: API to disable memory mitigations" am: 32535585

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1449538

Change-Id: Ie5cc92e3bbd6b05a2351ba2b143d92f4ff6e4e79
parents d969516a 32535585
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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: {
+3 −0
Original line number Diff line number Diff line
@@ -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

libcutils/memory.cpp

0 → 100644
+39 −0
Original line number Diff line number Diff line
/*
 * 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.");
    }
}