diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-05-04 17:54:06 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-05-04 17:54:06 +0000 |
commit | 8ff72dc11d7130abdb39be3615fd105fc1b0bd2c (patch) | |
tree | 8170680cd720abea1616736e5f313b209a5c376a | |
parent | 58179042cbc0a992e86df0a75b6dd201654949ae (diff) | |
parent | 04b951dfa4f1c9b54cade4617283eb3e96c951b1 (diff) | |
download | netd-android-platform-11.0.0_r31.tar.gz |
Snap for 7316203 from 04b951dfa4f1c9b54cade4617283eb3e96c951b1 to rvc-platform-releaseandroid-platform-11.0.0_r9android-platform-11.0.0_r8android-platform-11.0.0_r7android-platform-11.0.0_r36android-platform-11.0.0_r35android-platform-11.0.0_r34android-platform-11.0.0_r33android-platform-11.0.0_r32android-platform-11.0.0_r31android-platform-11.0.0_r30android-platform-11.0.0_r29android-platform-11.0.0_r28android-platform-11.0.0_r27android-platform-11.0.0_r26android-platform-11.0.0_r25android-platform-11.0.0_r24android-platform-11.0.0_r23android-platform-11.0.0_r22android-platform-11.0.0_r21android-platform-11.0.0_r20android-platform-11.0.0_r19android-platform-11.0.0_r18android-platform-11.0.0_r17android-platform-11.0.0_r16android-platform-11.0.0_r15android-platform-11.0.0_r14android-platform-11.0.0_r13android-platform-11.0.0_r12android-platform-11.0.0_r11android-platform-11.0.0_r10
Change-Id: Ie3d66467a83bca1345a013389a572598a06d5ac4
-rw-r--r-- | server/SockDiag.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/server/SockDiag.cpp b/server/SockDiag.cpp index 44bda3b0..e0b6b4b7 100644 --- a/server/SockDiag.cpp +++ b/server/SockDiag.cpp @@ -31,6 +31,7 @@ #include <cinttypes> +#include <android-base/properties.h> #include <android-base/strings.h> #include <log/log.h> #include <netdutils/InternetAddresses.h> @@ -52,6 +53,15 @@ using netdutils::Stopwatch; namespace net { namespace { +int getAdbPort() { + return android::base::GetIntProperty("service.adb.tcp.port", 0); +} + +bool isAdbSocket(const inet_diag_msg *msg, int adbPort) { + return adbPort > 0 && msg->id.idiag_sport == htons(adbPort) && + (msg->idiag_uid == AID_ROOT || msg->idiag_uid == AID_SHELL); +} + int checkError(int fd) { struct { nlmsghdr h; @@ -414,7 +424,8 @@ int SockDiag::destroySockets(const UidRanges& uidRanges, const std::set<uid_t>& return msg != nullptr && uidRanges.hasUid(msg->idiag_uid) && skipUids.find(msg->idiag_uid) == skipUids.end() && - !(excludeLoopback && isLoopbackSocket(msg)); + !(excludeLoopback && isLoopbackSocket(msg)) && + !isAdbSocket(msg, getAdbPort()); }; iovec iov[] = { |