diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/syscalls.cc | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 8c2e24ded..1c2506d78 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2006-03-02 Corinna Vinschen <corinna@vinschen.de> + * syscalls.cc (chroot): Disallow chroot into special directories. + Return EPERM instead. + +2006-03-02 Corinna Vinschen <corinna@vinschen.de> + * fhandler_disk_file.cc (__DIR_mounts::check_missing_mount): Check cygdrive string length for those who have cygdrive mapped to "/". diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 66c5e38c4..33eef64d3 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2359,6 +2359,8 @@ chroot (const char *newroot) set_errno (ENOENT); else if (!path.isdir ()) set_errno (ENOTDIR); + else if (path.isspecial ()) + set_errno (EPERM); else { getwinenv("PATH="); /* Save the native PATH */ |