summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2017-01-10 08:48:47 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-01-10 08:48:47 +0000
commit5f58ccb949cd2a4a8e1ca39eea5f95c003337827 (patch)
tree6e1f97011b9fe8663027557305ae2e305f1e19c6
parentbf660285fec6a7f2ef2ef75ad7440a34ccc7e452 (diff)
parent3c8ae064554e1b418a44bdc6fbb692df1d834ea7 (diff)
downloadtests-5f58ccb949cd2a4a8e1ca39eea5f95c003337827.tar.gz
Test that changing fd attributes doesn't change the socket UID. am: 267ba57456 am: fbb92420b1
am: 3c8ae06455 Change-Id: I22da5532bd61c7fcde9b99e75ced5ca374e2eaa2
-rwxr-xr-xnet/test/multinetwork_test.py43
1 files changed, 37 insertions, 6 deletions
diff --git a/net/test/multinetwork_test.py b/net/test/multinetwork_test.py
index 2e148cd..f05c8e9 100755
--- a/net/test/multinetwork_test.py
+++ b/net/test/multinetwork_test.py
@@ -832,13 +832,14 @@ class UidRoutingTest(multinetwork_base.MultiNetworkBaseTest):
def testIPv6InitialTablesHaveNoUIDs(self):
self.CheckInitialTablesHaveNoUIDs(6)
- def CheckGetAndSetRules(self, version):
- def Random():
- return random.randint(1000000, 2000000)
+ @staticmethod
+ def _Random():
+ return random.randint(1000000, 2000000)
- start, end = tuple(sorted([Random(), Random()]))
- table = Random()
- priority = Random()
+ def CheckGetAndSetRules(self, version):
+ start, end = tuple(sorted([self._Random(), self._Random()]))
+ table = self._Random()
+ priority = self._Random()
# Can't create a UID range to UID -1 because -1 is INVALID_UID...
self.assertRaisesErrno(
@@ -950,6 +951,36 @@ class UidRoutingTest(multinetwork_base.MultiNetworkBaseTest):
def testIPv6RouteGet(self):
self.CheckGetRoute(6, net_test.IPV6_ADDR)
+ def testChangeFdAttributes(self):
+ netid = random.choice(self.NETIDS)
+ uid = self._Random()
+ table = self._TableForNetid(netid)
+ remoteaddr = self.GetRemoteAddress(6)
+ s = socket(AF_INET6, SOCK_DGRAM, 0)
+
+ def CheckSendFails():
+ self.assertRaisesErrno(errno.ENETUNREACH,
+ s.sendto, "foo", (remoteaddr, 53))
+ def CheckSendSucceeds():
+ self.assertEquals(len("foo"), s.sendto("foo", (remoteaddr, 53)))
+
+ CheckSendFails()
+ self.iproute.UidRangeRule(6, True, uid, uid, table, self.PRIORITY_UID)
+ try:
+ CheckSendFails()
+ os.fchown(s.fileno(), uid, -1)
+ CheckSendSucceeds()
+ os.fchown(s.fileno(), -1, -1)
+ CheckSendSucceeds()
+ os.fchown(s.fileno(), -1, 12345)
+ CheckSendSucceeds()
+ os.fchmod(s.fileno(), 0777)
+ CheckSendSucceeds()
+ os.fchown(s.fileno(), 0, -1)
+ CheckSendFails()
+ finally:
+ self.iproute.UidRangeRule(6, False, uid, uid, table, self.PRIORITY_UID)
+
class RulesTest(net_test.NetworkTest):