Adding fuzzer for VoldNativeService

vold_native_service_fuzzer is added to fuzz VoldNativeService.

BUG: 232439428
Test: m vold_native_service_fuzzer
Test: adb sync && adb shell data/fuzz/x86_64/vold_native_service_fuzzer/vold_native_service_fuzzer
Change-Id: I2bf33f68e2a51b4ac390b5a5ad47d07260e94122
This commit is contained in:
Pawan 2022-08-19 17:51:44 +00:00 committed by Pawan Wagh
parent 9355e48aaa
commit be70861242
2 changed files with 54 additions and 0 deletions

View file

@ -16,3 +16,27 @@ cc_test {
static_libs: ["libvold"],
shared_libs: ["libbinder"]
}
cc_fuzz {
name: "vold_native_service_fuzzer",
defaults: [
"vold_default_flags",
"vold_default_libs",
"keystore2_use_latest_aidl_ndk_shared",
"service_fuzzer_defaults",
],
static_libs: [
"libvold",
"android.security.maintenance-ndk",
"libkeymint_support",
],
header_libs: ["libvold_headers"],
srcs: [
"VoldFuzzer.cpp",
],
fuzz_config: {
cc: [
"maco@google.com",
],
}
}

30
tests/VoldFuzzer.cpp Normal file
View file

@ -0,0 +1,30 @@
/*
* Copyright (C) 2023 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 <fuzzbinder/libbinder_driver.h>
#include "VoldNativeService.h"
using ::android::fuzzService;
using ::android::sp;
struct selabel_handle* sehandle;
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
auto voldService = sp<android::vold::VoldNativeService>::make();
fuzzService(voldService, FuzzedDataProvider(data, size));
return 0;
}