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

Commit e0d725a8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Setting up crash type in test fuzzer" into main am: 82b2ed5e am:...

Merge "Setting up crash type in test fuzzer" into main am: 82b2ed5e am: ff13cd5c am: 28167dd6 am: b55ceac5 am: dcbeaa8b

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2712996



Change-Id: Ie0cc495e1a1cdaa2f5607f24c4d52aa9a2ff9e54
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 1dd593d3 dcbeaa8b
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ enum class CrashType {
    ON_ROOT_AID,
    ON_DUMP_TRANSACT,
    ON_SHELL_CMD_TRANSACT,
    CRASH_ALWAYS,
};

// This service is to verify that fuzzService is functioning properly
@@ -112,8 +113,10 @@ CrashType gCrashType = CrashType::NONE;

extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) {
    if (*argc < 2) {
        printf("You must specify at least one argument\n");
        exit(0); // success because this is a crash test
        // This fuzzer is also used as test fuzzer to check infra pipeline.
        // It should always run and find a crash in TestService.
        gCrashType = CrashType::CRASH_ALWAYS;
        return 0;
    }

    std::string arg = std::string((*argv)[1]);
@@ -146,6 +149,9 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) {
}

extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
    if (gCrashType == CrashType::CRASH_ALWAYS) {
        LOG_ALWAYS_FATAL("Expected crash, This fuzzer will always crash.");
    }
    auto service = sp<TestService>::make(gCrashType);
    fuzzService(service, FuzzedDataProvider(data, size));
    return 0;