Hide statfs/fstatfs' ST_VALID flag from userspace.
Spotted while debugging the strace 4.10 upgrade.
Change-Id: I1af1be9c9440151f55f74a835e1df71529b0e4fe
diff --git a/tests/sys_vfs_test.cpp b/tests/sys_vfs_test.cpp
index 4b05660..a521967 100644
--- a/tests/sys_vfs_test.cpp
+++ b/tests/sys_vfs_test.cpp
@@ -31,6 +31,11 @@
EXPECT_EQ(0, sb.f_fsid.__val[0]);
EXPECT_EQ(0, sb.f_fsid.__val[1]);
EXPECT_EQ(255, static_cast<int>(sb.f_namelen));
+
+ // The kernel sets a private bit to indicate that f_flags is valid.
+ // This flag is not supposed to be exposed to libc clients.
+ static const uint32_t ST_VALID = 0x0020;
+ EXPECT_TRUE((sb.f_flags & ST_VALID) == 0) << sb.f_flags;
}
TEST(sys_vfs, statfs) {
@@ -52,6 +57,7 @@
close(fd);
Check(sb);
}
+
TEST(sys_vfs, fstatfs64) {
struct statfs64 sb;
int fd = open("/proc", O_RDONLY);