diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2006-03-02 18:08:09 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2006-03-02 18:08:09 +0000 |
commit | 7b8b467defe138fefee0fd468c89d006ceab2c7f (patch) | |
tree | b2de5616678f9260483f358609ced14dafb24a6f | |
parent | cb1975812d5fdf87452ecdae67f5011a3049c01b (diff) | |
download | cygnal-7b8b467defe138fefee0fd468c89d006ceab2c7f.tar.gz cygnal-7b8b467defe138fefee0fd468c89d006ceab2c7f.tar.bz2 cygnal-7b8b467defe138fefee0fd468c89d006ceab2c7f.zip |
* syscalls.cc (chroot): Disallow chroot into special directories.
Return EPERM instead.
-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 */ |