diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-03-29 22:06:58 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-03-29 22:06:58 +0000 |
commit | 5583467c5157ff586ff562f1a8c433175ba5f55a (patch) | |
tree | 8170680cd720abea1616736e5f313b209a5c376a | |
parent | 5a1ac6ef7be75387435f8c08195df5850d24f6ae (diff) | |
parent | 0df16c93d1d092cb5445ed9e1a9899e0f25e0f6d (diff) | |
download | netd-android11-qpr3-release.tar.gz |
Snap for 7242784 from 0df16c93d1d092cb5445ed9e1a9899e0f25e0f6d to rvc-qpr3-releaseandroid-11.0.0_r46android-11.0.0_r43android-11.0.0_r40android-11.0.0_r39android-11.0.0_r38android11-qpr3-s1-releaseandroid11-qpr3-release
Change-Id: I708d1ed1529c39ac9e8497bff7c2fb7a9f9dd169
-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[] = { |