OffloadUtilsTest - enforce CLOEXEC being set
We assume this is the case or we leak fd's during fork-exec.
Test: build, atest
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I06a5df59e86600ed01bf3b30e55371cf3908f3a1
diff --git a/server/OffloadUtilsTest.cpp b/server/OffloadUtilsTest.cpp
index d93ac1e..a7b132e 100644
--- a/server/OffloadUtilsTest.cpp
+++ b/server/OffloadUtilsTest.cpp
@@ -103,6 +103,7 @@
int fd = getClatEgressMapFd();
ASSERT_LE(3, fd); // 0,1,2 - stdin/out/err, thus 3 <= fd
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -111,6 +112,7 @@
int fd = getClatEgressProgFd(RAWIP);
ASSERT_LE(3, fd);
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -119,6 +121,7 @@
int fd = getClatEgressProgFd(ETHER);
ASSERT_LE(3, fd);
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -127,6 +130,7 @@
int fd = getClatIngressMapFd();
ASSERT_LE(3, fd); // 0,1,2 - stdin/out/err, thus 3 <= fd
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -135,6 +139,7 @@
int fd = getClatIngressProgFd(RAWIP);
ASSERT_LE(3, fd);
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -143,6 +148,7 @@
int fd = getClatIngressProgFd(ETHER);
ASSERT_LE(3, fd);
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -151,6 +157,7 @@
int fd = getTetherIngressMapFd();
ASSERT_LE(3, fd); // 0,1,2 - stdin/out/err, thus 3 <= fd
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -161,6 +168,7 @@
int fd = getTetherIngressProgFd(RAWIP);
ASSERT_LE(3, fd);
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -171,6 +179,7 @@
int fd = getTetherIngressProgFd(ETHER);
ASSERT_LE(3, fd);
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}
@@ -179,6 +188,7 @@
int fd = getTetherStatsMapFd();
ASSERT_LE(3, fd); // 0,1,2 - stdin/out/err, thus 3 <= fd
+ EXPECT_EQ(FD_CLOEXEC, fcntl(fd, F_GETFD));
close(fd);
}