diff options
author | Andreas Kling <awesomekling@gmail.com> | 2020-01-10 12:51:05 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2020-01-10 14:07:36 +0100 |
commit | b1ffde61995d83d0f5cd5c860f6353a0e5e61399 (patch) | |
tree | c75a77d1862e44a4e55e1a734cdeda9645997dfe /Userland | |
parent | f026f0f4bb42b1d77e2ad9f1c55e5f729a668f6d (diff) | |
download | serenity-b1ffde61995d83d0f5cd5c860f6353a0e5e61399.zip |
Kernel: unlink() should not follow symlinks
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/test_io.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Userland/test_io.cpp b/Userland/test_io.cpp index b85aeac7a7..2d2982f626 100644 --- a/Userland/test_io.cpp +++ b/Userland/test_io.cpp @@ -174,6 +174,20 @@ void test_open_create_device() close(fd); } +void test_unlink_symlink() +{ + int rc = symlink("/proc/2/foo", "/tmp/linky"); + if (rc < 0) { + perror("symlink"); + ASSERT_NOT_REACHED(); + } + rc = unlink("/tmp/linky"); + if (rc < 0) { + perror("unlink"); + fprintf(stderr, "Expected unlink() of a symlink into an unreadable directory to succeed!\n"); + } +} + int main(int, char**) { int rc; @@ -196,6 +210,7 @@ int main(int, char**) test_tmpfs_read_past_end(); test_procfs_read_past_end(); test_open_create_device(); + test_unlink_symlink(); return 0; } |