summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2014-06-21 00:41:26 +0900
committerLorenzo Colitti <lorenzo@google.com>2015-02-02 17:47:29 +0900
commit610743878821c018ac1918b280ecfa097b77d6f0 (patch)
tree2caa776cd892340d95594e2eaa1f55918038a2a0 /tests
parent1904b96289d82315dd0ec75eb0fd49cd04c605c5 (diff)
downloadextras-610743878821c018ac1918b280ecfa097b77d6f0.tar.gz
When changing UID, become a member of AID_INET.
Otherwise we can't open any sockets, which is not very useful. Change-Id: I4a7def277f1d14232cfc4486011935e608571fd6
Diffstat (limited to 'tests')
-rwxr-xr-xtests/net_test/mark_test.py3
-rwxr-xr-xtests/net_test/net_test.py5
2 files changed, 7 insertions, 1 deletions
diff --git a/tests/net_test/mark_test.py b/tests/net_test/mark_test.py
index 3d1ca1c5..18d0bf12 100755
--- a/tests/net_test/mark_test.py
+++ b/tests/net_test/mark_test.py
@@ -299,12 +299,15 @@ class RunAsUid(object):
def __enter__(self):
if self.uid:
self.saved_uid = os.geteuid()
+ self.saved_groups = os.getgroups()
if self.uid:
+ os.setgroups(self.saved_groups + [net_test.AID_INET])
os.seteuid(self.uid)
def __exit__(self, unused_type, unused_value, unused_traceback):
if self.uid:
os.seteuid(self.saved_uid)
+ os.setgroups(self.saved_groups)
def MakePktInfo(version, addr, ifindex):
diff --git a/tests/net_test/net_test.py b/tests/net_test/net_test.py
index 932a4af6..23b78689 100755
--- a/tests/net_test/net_test.py
+++ b/tests/net_test/net_test.py
@@ -22,6 +22,8 @@ IPV6_FLOWINFO_SEND = 33
ETH_P_IP = 0x0800
ETH_P_IPV6 = 0x86dd
+IPPROTO_GRE = 47
+
SIOCSIFHWADDR = 0x8924
IPV6_FL_A_GET = 0
@@ -47,7 +49,8 @@ IPV6_SEQ_DGRAM_HEADER = (" sl "
"st tx_queue rx_queue tr tm->when retrnsmt"
" uid timeout inode ref pointer drops\n")
-IPPROTO_GRE = 47
+# Unix group to use if we want to open sockets as non-root.
+AID_INET = 3003
def SetSocketTimeout(sock, ms):