summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawan Wagh <waghpawan@google.com>2023-03-08 08:05:41 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-03-08 08:05:41 +0000
commit20a425a89d95d5a124bcb8cc31511e35d52d566a (patch)
tree02b7a5cf3f5cbd60f5e99bd323b3ea7ebe2d6c5f
parent0a143327caf578d1b443e090185fe6e577ddd733 (diff)
parentc5623894c3429a0dbc9e6fd0b4538b0eee3954c9 (diff)
downloadnetd-20a425a89d95d5a124bcb8cc31511e35d52d566a.tar.gz
Merge changes I90884c71,I866b6078,I6d638a1d am: c8d9925a5e am: 0f8a84f304 am: c5623894c3
Original change: https://android-review.googlesource.com/c/platform/system/netd/+/2458868 Change-Id: Ie2702221bcbf82e7032459df1469ee71e8ece700 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--server/Android.bp108
-rw-r--r--server/aidl-fuzzers/NetdHwAidlServiceFuzzer.cpp32
-rw-r--r--server/aidl-fuzzers/NetdNativeServiceFuzzer.cpp35
3 files changed, 113 insertions, 62 deletions
diff --git a/server/Android.bp b/server/Android.bp
index a0df195b..7773cb02 100644
--- a/server/Android.bp
+++ b/server/Android.bp
@@ -85,8 +85,8 @@ cc_library_static {
},
}
-cc_binary {
- name: "netd",
+cc_defaults {
+ name: "netd_default_sources",
defaults: [
"netd_aidl_interface_lateststable_cpp_shared",
"netd_defaults",
@@ -95,11 +95,6 @@ cc_binary {
"external/mdnsresponder/mDNSShared",
"system/netd/include",
],
- init_rc: ["netd.rc"],
- vintf_fragments: ["android.system.net.netd-service.xml"],
- required: [
- "bpfloader",
- ],
shared_libs: [
"android.system.net.netd@1.0",
"android.system.net.netd@1.1",
@@ -151,9 +146,23 @@ cc_binary {
"Process.cpp",
"UnreachableNetwork.cpp",
"VirtualNetwork.cpp",
- "main.cpp",
"oem_iptables_hook.cpp",
],
+}
+
+cc_binary {
+ name: "netd",
+ defaults: [
+ "netd_default_sources",
+ ],
+ init_rc: ["netd.rc"],
+ vintf_fragments: ["android.system.net.netd-service.xml"],
+ required: [
+ "bpfloader",
+ ],
+ srcs: [
+ "main.cpp",
+ ],
sanitize: {
cfi: true,
memtag_heap: true,
@@ -252,67 +261,14 @@ cc_test {
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",
+ "netd_default_sources",
],
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",
],
}
}
@@ -326,4 +282,32 @@ cc_fuzz {
srcs: [
"aidl-fuzzers/MDnsServiceFuzzer.cpp",
],
+ fuzz_config: {
+ cc: [
+ "paulhu@google.com",
+ ],
+ }
+}
+
+cc_fuzz {
+ name: "netd_hw_service_fuzzer",
+ defaults: [
+ "service_fuzzer_defaults",
+ "netd_aidl_fuzzer_defaults",
+ ],
+ srcs: [
+ "aidl-fuzzers/NetdHwAidlServiceFuzzer.cpp",
+ ],
+}
+
+cc_fuzz {
+ name: "netd_native_service_fuzzer",
+ defaults: [
+ "service_fuzzer_defaults",
+ "netd_aidl_fuzzer_defaults",
+ ],
+ srcs: [
+ "aidl-fuzzers/NetdNativeServiceFuzzer.cpp",
+ ],
}
+
diff --git a/server/aidl-fuzzers/NetdHwAidlServiceFuzzer.cpp b/server/aidl-fuzzers/NetdHwAidlServiceFuzzer.cpp
new file mode 100644
index 00000000..7556740b
--- /dev/null
+++ b/server/aidl-fuzzers/NetdHwAidlServiceFuzzer.cpp
@@ -0,0 +1,32 @@
+/*
+ * 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_ndk_driver.h>
+#include <fuzzer/FuzzedDataProvider.h>
+
+#include <android/binder_interface_utils.h>
+
+#include "NetdHwAidlService.h"
+
+using android::fuzzService;
+using android::net::aidl::NetdHwAidlService;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ auto service = ::ndk::SharedRefBase::make<NetdHwAidlService>();
+ fuzzService(service->asBinder().get(), FuzzedDataProvider(data, size));
+
+ return 0;
+}
diff --git a/server/aidl-fuzzers/NetdNativeServiceFuzzer.cpp b/server/aidl-fuzzers/NetdNativeServiceFuzzer.cpp
new file mode 100644
index 00000000..2d041842
--- /dev/null
+++ b/server/aidl-fuzzers/NetdNativeServiceFuzzer.cpp
@@ -0,0 +1,35 @@
+/*
+ * 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 "Permission.h"
+#include "NetdConstants.h"
+#include "NetdNativeService.h"
+
+
+using android::fuzzService;
+using android::net::NetdNativeService;
+
+std::mutex android::net::gBigNetdLock;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ auto service = new NetdNativeService();
+ fuzzService(service, FuzzedDataProvider(data, size));
+
+ return 0;
+}