diff options
| author | 2023-04-21 03:35:56 +0000 | |
|---|---|---|
| committer | 2023-04-21 03:35:56 +0000 | |
| commit | a005f012489b9f18bd85a7fbdbce64d03b51af4c (patch) | |
| tree | 257889b3becf6602a222a2be70b32a27e47879ca | |
| parent | 3b27637cf61058a538d0a0c6173a879e13fce3e8 (diff) | |
| parent | 82189f28fcb1ecf3da920e6f88e28f0f05e5f19e (diff) | |
Merge "Adding ServiceManagerTestFuzzer to use seed corpus" am: 39b0cef85f am: 82189f28fc
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2551036
Change-Id: I29197ccc38716d6f31b663b90c9331eaca68b106
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
48 files changed, 64 insertions, 3 deletions
diff --git a/cmds/servicemanager/Android.bp b/cmds/servicemanager/Android.bp index d73a30bf9b..fb69513d24 100644 --- a/cmds/servicemanager/Android.bp +++ b/cmds/servicemanager/Android.bp @@ -93,9 +93,22 @@ cc_fuzz { libfuzzer_options: [ "max_len=50000", ], - cc: [ - "smoreland@google.com", - "waghpawan@google.com", + }, +} + +// Adding this new fuzzer to test the corpus generated by record_binder +cc_fuzz { + name: "servicemanager_test_fuzzer", + defaults: [ + "servicemanager_defaults", + "service_fuzzer_defaults", + ], + host_supported: true, + srcs: ["fuzzers/ServiceManagerTestFuzzer.cpp"], + fuzz_config: { + libfuzzer_options: [ + "max_len=50000", ], }, + corpus: ["fuzzers/servicemamanager_fuzzer_corpus/*"], } diff --git a/cmds/servicemanager/fuzzers/ServiceManagerTestFuzzer.cpp b/cmds/servicemanager/fuzzers/ServiceManagerTestFuzzer.cpp new file mode 100644 index 0000000000..e19b6eb279 --- /dev/null +++ b/cmds/servicemanager/fuzzers/ServiceManagerTestFuzzer.cpp @@ -0,0 +1,48 @@ +/* + * 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 <utils/StrongPointer.h> + +#include "Access.h" +#include "ServiceManager.h" + +using ::android::Access; +using ::android::Parcel; +using ::android::ServiceManager; +using ::android::sp; + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + FuzzedDataProvider provider(data, size); + auto accessPtr = std::make_unique<Access>(); + auto serviceManager = sp<ServiceManager>::make(std::move(accessPtr)); + + // Reserved bytes + provider.ConsumeBytes<uint8_t>(8); + uint32_t code = provider.ConsumeIntegral<uint32_t>(); + uint32_t flag = provider.ConsumeIntegral<uint32_t>(); + std::vector<uint8_t> parcelData = provider.ConsumeRemainingBytes<uint8_t>(); + + Parcel inputParcel; + inputParcel.setData(parcelData.data(), parcelData.size()); + + Parcel reply; + serviceManager->transact(code, inputParcel, &reply, flag); + + serviceManager->clear(); + + return 0; +} diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_1 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_1 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_1 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_10 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_10 Binary files differnew file mode 100644 index 0000000000..07319f864e --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_10 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_11 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_11 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_11 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_12 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_12 Binary files differnew file mode 100644 index 0000000000..07319f864e --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_12 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_13 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_13 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_13 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_14 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_14 Binary files differnew file mode 100644 index 0000000000..07319f864e --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_14 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_15 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_15 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_15 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_16 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_16 Binary files differnew file mode 100644 index 0000000000..07319f864e --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_16 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_17 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_17 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_17 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_18 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_18 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_18 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_19 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_19 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_19 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_2 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_2 Binary files differnew file mode 100644 index 0000000000..e69ab49d5d --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_2 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_20 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_20 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_20 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_21 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_21 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_21 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_22 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_22 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_22 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_23 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_23 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_23 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_24 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_24 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_24 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_25 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_25 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_25 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_26 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_26 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_26 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_27 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_27 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_27 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_28 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_28 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_28 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_29 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_29 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_29 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_3 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_3 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_3 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_30 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_30 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_30 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_31 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_31 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_31 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_32 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_32 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_32 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_33 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_33 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_33 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_34 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_34 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_34 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_35 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_35 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_35 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_36 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_36 Binary files differnew file mode 100644 index 0000000000..88ad474f09 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_36 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_37 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_37 Binary files differnew file mode 100644 index 0000000000..fae15a2fea --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_37 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_38 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_38 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_38 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_39 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_39 Binary files differnew file mode 100644 index 0000000000..b326907a58 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_39 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_4 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_4 Binary files differnew file mode 100644 index 0000000000..05b27bf413 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_4 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_40 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_40 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_40 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_41 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_41 Binary files differnew file mode 100644 index 0000000000..b326907a58 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_41 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_42 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_42 Binary files differnew file mode 100644 index 0000000000..cdaa1f01b1 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_42 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_43 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_43 Binary files differnew file mode 100644 index 0000000000..ff0941b7a6 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_43 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_44 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_44 Binary files differnew file mode 100644 index 0000000000..cdaa1f01b1 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_44 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_45 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_45 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_45 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_46 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_46 Binary files differnew file mode 100644 index 0000000000..7e5f948682 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_46 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_5 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_5 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_5 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_6 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_6 Binary files differnew file mode 100644 index 0000000000..07319f864e --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_6 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_7 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_7 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_7 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_8 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_8 Binary files differnew file mode 100644 index 0000000000..07319f864e --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_8 diff --git a/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_9 b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_9 Binary files differnew file mode 100644 index 0000000000..39e5104927 --- /dev/null +++ b/cmds/servicemanager/fuzzers/servicemanager_fuzzer_corpus/Transaction_9 |