summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawan Wagh <waghpawan@google.com>2023-03-08 08:41:18 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-03-08 08:41:18 +0000
commitd2b3c6288b0772bc2698a2e8e3b221fb3f3e991c (patch)
tree49048a1086316c3473c3fe1c3319e0956ebe5084
parentbe912ebf8866c866b5d8c69a4afa0183307b5554 (diff)
parent0a143327caf578d1b443e090185fe6e577ddd733 (diff)
downloadnetd-d2b3c6288b0772bc2698a2e8e3b221fb3f3e991c.tar.gz
Merge "Fuzz MDnsService" am: bf65a5401a am: 5a1e156361 am: 4d3e959e9f am: 0a143327ca
Original change: https://android-review.googlesource.com/c/platform/system/netd/+/2441889 Change-Id: I24853def831e800a4c78664e96a2481fd171373f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--server/Android.bp79
-rw-r--r--server/aidl-fuzzers/MDnsServiceFuzzer.cpp30
2 files changed, 109 insertions, 0 deletions
diff --git a/server/Android.bp b/server/Android.bp
index 1f893749..a0df195b 100644
--- a/server/Android.bp
+++ b/server/Android.bp
@@ -248,3 +248,82 @@ cc_test {
],
// tidy: false, // cuts test build time by almost 1 minute
}
+
+cc_defaults {
+ name: "netd_aidl_fuzzer_defaults",
+ defaults: [
+ "netd_aidl_interface_lateststable_cpp_static",
+ "netd_defaults",
+ ],
+ include_dirs: [
+ "external/mdnsresponder/mDNSShared",
+ "system/netd/include",
+ ],
+ shared_libs: [
+ "android.system.net.netd@1.0",
+ "android.system.net.netd@1.1",
+ "android.system.net.netd-V1-ndk",
+ "libdl",
+ "libhidlbase",
+ "libmdnssd",
+ "libnetd_updatable",
+ "libnetd_resolv",
+ "libnetdutils",
+ "libnetutils",
+ "liblog",
+ "libpcap",
+ "libprocessgroup",
+ "libselinux",
+ "libsysutils",
+ "libutils",
+ "mdns_aidl_interface-V1-cpp",
+ "netd_event_listener_interface-V1-cpp",
+ "oemnetd_aidl_interface-cpp",
+ ],
+ static_libs: [
+ "libip_checksum",
+ "libnetd_server",
+ "libtcutils",
+ ],
+ srcs: [
+ "DummyNetwork.cpp",
+ "EventReporter.cpp",
+ "FwmarkServer.cpp",
+ "LocalNetwork.cpp",
+ "MDnsEventReporter.cpp",
+ "MDnsSdListener.cpp",
+ "MDnsService.cpp",
+ "NetdCommand.cpp",
+ "NetdHwAidlService.cpp",
+ "NetdHwService.cpp",
+ "NetdNativeService.cpp",
+ "NetlinkHandler.cpp",
+ "Network.cpp",
+ "NetworkController.cpp",
+ "OemNetdListener.cpp",
+ "PhysicalNetwork.cpp",
+ "PppController.cpp",
+ "Process.cpp",
+ "UnreachableNetwork.cpp",
+ "VirtualNetwork.cpp",
+ "oem_iptables_hook.cpp",
+ "Controllers.cpp",
+ ],
+ fuzz_config: {
+ cc: [
+ "cken@google.com",
+ "maze@google.com",
+ ],
+ }
+}
+
+cc_fuzz {
+ name: "mdns_service_fuzzer",
+ defaults: [
+ "service_fuzzer_defaults",
+ "netd_aidl_fuzzer_defaults",
+ ],
+ srcs: [
+ "aidl-fuzzers/MDnsServiceFuzzer.cpp",
+ ],
+}
diff --git a/server/aidl-fuzzers/MDnsServiceFuzzer.cpp b/server/aidl-fuzzers/MDnsServiceFuzzer.cpp
new file mode 100644
index 00000000..afee63da
--- /dev/null
+++ b/server/aidl-fuzzers/MDnsServiceFuzzer.cpp
@@ -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 <fuzzer/FuzzedDataProvider.h>
+
+#include "MDnsService.h"
+
+using android::fuzzService;
+using android::net::MDnsService;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ auto mdnsService = new MDnsService();
+ fuzzService(mdnsService, FuzzedDataProvider(data, size));
+
+ return 0;
+}