diff options
| author | Hungming Chen <nuccachen@google.com> | 2022-03-04 21:16:59 +0800 |
|---|---|---|
| committer | Hungming Chen <nuccachen@google.com> | 2022-03-07 16:03:05 +0800 |
| commit | 478c0eb21c1be93e9baa762c1d69f0057a5941fe (patch) | |
| tree | 54daa98480909abc775bb81d6a3b3200be60b319 /netd/BpfHandlerTest.cpp | |
| parent | edf80c2da80c33093c394f59fd674fbc577d5e3c (diff) | |
BpfHandler: only allow to tag udp/tcp socket
The TrafficController socket destroy listener only monitors
on the group {INET_TCP, INET_UDP, INET6_TCP, INET6_UDP}.
Tagging listener unsupported socket causes that the tag can't
be removed from tag map automatically. Eventually, the tag map
run out of space because of dead tag entries.
See TrafficController::makeSkDestroyListener in
packages/modules/Connectivity/service/native/TrafficController.cpp
Bug: 223094609
Test: atest BpfHandlerTest
Change-Id: Icc19b7c9f37fef498b89f43e44767f6b9e931a5a
Diffstat (limited to 'netd/BpfHandlerTest.cpp')
| -rw-r--r-- | netd/BpfHandlerTest.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/netd/BpfHandlerTest.cpp b/netd/BpfHandlerTest.cpp index 925a92f301..66a2f803a3 100644 --- a/netd/BpfHandlerTest.cpp +++ b/netd/BpfHandlerTest.cpp @@ -188,6 +188,14 @@ TEST_F(BpfHandlerTest, TestTagInvalidSocket) { expectMapEmpty(mFakeCookieTagMap); } +TEST_F(BpfHandlerTest, TestTagSocketWithUnsupportedProtocol) { + int rawSocket = socket(AF_INET, SOCK_RAW | SOCK_CLOEXEC, IPPROTO_RAW); + EXPECT_LE(0, rawSocket); + uint64_t sockCookie = getSocketCookie(rawSocket); + EXPECT_NE(NONEXISTENT_COOKIE, sockCookie); + EXPECT_EQ(-EPROTONOSUPPORT, mBh.tagSocket(rawSocket, TEST_TAG, TEST_UID, TEST_UID)); +} + TEST_F(BpfHandlerTest, TestTagSocketWithoutPermission) { int sock = socket(AF_INET6, SOCK_STREAM | SOCK_CLOEXEC, 0); ASSERT_NE(-1, sock); |
