diff options
| -rw-r--r-- | libs/sensor/fuzz/bittube_fuzzer/Android.bp | 42 | ||||
| -rw-r--r-- | libs/sensor/fuzz/bittube_fuzzer/bittube_fuzzer.cpp | 37 |
2 files changed, 79 insertions, 0 deletions
diff --git a/libs/sensor/fuzz/bittube_fuzzer/Android.bp b/libs/sensor/fuzz/bittube_fuzzer/Android.bp new file mode 100644 index 0000000000..5d8f4019a8 --- /dev/null +++ b/libs/sensor/fuzz/bittube_fuzzer/Android.bp @@ -0,0 +1,42 @@ +/****************************************************************************** + * + * Copyright (C) 2022 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. + * + ***************************************************************************** + */ +cc_fuzz { + name: "bittube_fuzzer", + srcs: [ + "bittube_fuzzer.cpp", + ], + static_libs: [ + ], + shared_libs: [ + "libsensor", + "libbinder", + "libcutils", + "libutils", + "liblog", + "libhardware", + "libpermission", + ], + export_shared_lib_headers: [ + "libbinder", + "libpermission", + "libhardware", + ], + header_libs: [ + ], +} diff --git a/libs/sensor/fuzz/bittube_fuzzer/bittube_fuzzer.cpp b/libs/sensor/fuzz/bittube_fuzzer/bittube_fuzzer.cpp new file mode 100644 index 0000000000..6f10a67ebd --- /dev/null +++ b/libs/sensor/fuzz/bittube_fuzzer/bittube_fuzzer.cpp @@ -0,0 +1,37 @@ +/****************************************************************************** + * + * Copyright (C) 2022 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 <fuzzer/FuzzedDataProvider.h> + +#include <sensor/BitTube.h> +#include <binder/Parcel.h> +using namespace android; + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + FuzzedDataProvider fdp(data, size); + BitTube bittube(size); + Parcel parcel[5]; + bittube.writeToParcel(parcel); + sp<BitTube> tube(new BitTube(size)); + bittube.sendObjects<uint8_t>(tube, data, size); + uint8_t recvData[size]; + for (int i = 0; i < size; i++) recvData[i] = fdp.ConsumeIntegral<uint8_t>(); + bittube.recvObjects<uint8_t>(tube, recvData, size); + + return 0; +} |