diff options
author | Jamie Liu <jamieliu@google.com> | 2019-03-29 13:15:49 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2019-03-29 13:16:46 -0700 |
commit | 69afd0438e3213b8bf6d74bdf9c288772f81e834 (patch) | |
tree | cd0a67d09b6486efc9ba219a37b95e2ce97043a6 /test | |
parent | ed23f547093e705ba3d6f82b2ce49592180f9a5a (diff) |
Return srclen in proc.idMapFileOperations.Write.
PiperOrigin-RevId: 241037926
Change-Id: I4b0381ac1c7575e8b861291b068d3da22bc03850
Diffstat (limited to 'test')
-rw-r--r-- | test/syscalls/linux/proc_pid_uid_gid_map.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/syscalls/linux/proc_pid_uid_gid_map.cc b/test/syscalls/linux/proc_pid_uid_gid_map.cc index bf0f8b2bb..e6a5265fa 100644 --- a/test/syscalls/linux/proc_pid_uid_gid_map.cc +++ b/test/syscalls/linux/proc_pid_uid_gid_map.cc @@ -129,6 +129,23 @@ TEST_P(ProcSelfUidGidMapTest, IdentityMapOwnID) { IsPosixErrorOkAndHolds(0)); } +TEST_P(ProcSelfUidGidMapTest, TrailingNewlineAndNULIgnored) { + // This is identical to IdentityMapOwnID, except that a trailing newline, NUL, + // and an invalid (incomplete) map entry are appended to the valid entry. The + // newline should be accepted, and everything after the NUL should be ignored. + SKIP_IF(!ASSERT_NO_ERRNO_AND_VALUE(CanCreateUserNamespace())); + uint32_t id = CurrentID(); + std::string line = absl::StrCat(id, " ", id, " 1\n\0 4 3"); + EXPECT_THAT( + InNewUserNamespaceWithMapFD([&](int fd) { + DenySelfSetgroups(); + // The write should return the full size of the write, even though + // characters after the NUL were ignored. + TEST_PCHECK(write(fd, line.c_str(), line.size()) == line.size()); + }), + IsPosixErrorOkAndHolds(0)); +} + TEST_P(ProcSelfUidGidMapTest, NonIdentityMapOwnID) { SKIP_IF(!ASSERT_NO_ERRNO_AND_VALUE(CanCreateUserNamespace())); SKIP_IF(ASSERT_NO_ERRNO_AND_VALUE(HaveSetIDCapability())); |