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

Commit 643ea1cd authored by Ayushi Khopkar's avatar Ayushi Khopkar
Browse files

Added audiocontrolV1.0_fuzzer

Test: adb shell /data/fuzz/${TARGET_ARCH}/audiocontrolV1.0_fuzzer/audiocontrolV1.0_fuzzer CORPUS_DIR
Bug: 170942906

Change-Id: Id237c28636a9a9bfaf663e29f6a8f6851ca7b321
parent 49ad4f04
Loading
Loading
Loading
Loading
+14 −1
Original line number Original line Diff line number Diff line
@@ -19,7 +19,7 @@ cc_binary {
    relative_install_path: "hw",
    relative_install_path: "hw",
    srcs: [
    srcs: [
        "AudioControl.cpp",
        "AudioControl.cpp",
        "service.cpp"
        "service.cpp",
    ],
    ],
    init_rc: ["android.hardware.automotive.audiocontrol@1.0-service.rc"],
    init_rc: ["android.hardware.automotive.audiocontrol@1.0-service.rc"],


@@ -31,3 +31,16 @@ cc_binary {
    ],
    ],
    vintf_fragments: ["audiocontrol_manifest.xml"],
    vintf_fragments: ["audiocontrol_manifest.xml"],
}
}

filegroup {
    name: "audiocontrolV1.0_source",
    srcs: [
        "AudioControl.cpp",
    ],
}

cc_library_headers {
    name: "audiocontrolV1.0_header",
    host_supported: true,
    export_include_dirs: ["."],
}
+43 −0
Original line number Original line Diff line number Diff line
/******************************************************************************
 *
 * Copyright (C) 2021 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.
 *
 *****************************************************************************
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
 */

cc_fuzz {
    name: "audiocontrolV1.0_fuzzer",
    host_supported: true,
    srcs: [
        "audiocontrolV1.0_fuzzer.cpp",
        ":audiocontrolV1.0_source",
    ],
    header_libs: [
        "audiocontrolV1.0_header",
    ],
    shared_libs: [
        "android.hardware.automotive.audiocontrol@1.0",
        "libhidlbase",
        "liblog",
        "libutils",
    ],
    fuzz_config: {
        cc: [
            "android-media-fuzzing-reports@google.com",
        ],
        componentid: 533764,
    },
}
+41 −0
Original line number Original line Diff line number Diff line
/******************************************************************************
 *
 * Copyright (C) 2021 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.
 *
 *****************************************************************************
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
 */
#include <AudioControl.h>
#include <fuzzer/FuzzedDataProvider.h>

using ::android::sp;
using ::android::hardware::automotive::audiocontrol::V1_0::ContextNumber;
using ::android::hardware::automotive::audiocontrol::V1_0::implementation::AudioControl;

namespace android::hardware::automotive::audiocontrol::V1_0::implementation::fuzzer {
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
    if (size < 1) {
        return 0;
    }
    if (sp<AudioControl> audioControl = new AudioControl(); audioControl != nullptr) {
        FuzzedDataProvider fdp = FuzzedDataProvider(data, size);
        ContextNumber contextNumber = static_cast<ContextNumber>(fdp.ConsumeIntegral<uint32_t>());
        audioControl->getBusForContext(contextNumber);
        audioControl->setBalanceTowardRight(fdp.ConsumeFloatingPoint<float>());
        audioControl->setFadeTowardFront(fdp.ConsumeFloatingPoint<float>());
    }
    return 0;
}
}  // namespace android::hardware::automotive::audiocontrol::V1_0::implementation::fuzzer