summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dir.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/dir.cc')
-rw-r--r--winsup/cygwin/dir.cc8
1 files changed, 2 insertions, 6 deletions
diff --git a/winsup/cygwin/dir.cc b/winsup/cygwin/dir.cc
index 5aabcd370..cb49d3a94 100644
--- a/winsup/cygwin/dir.cc
+++ b/winsup/cygwin/dir.cc
@@ -224,7 +224,7 @@ mkdir (const char *dir, mode_t mode)
SECURITY_ATTRIBUTES sa = sec_none_nih;
security_descriptor sd;
- path_conv real_dir (dir, PC_SYM_NOFOLLOW);
+ path_conv real_dir (dir, PC_SYM_NOFOLLOW | PC_WRITABLE);
if (real_dir.error)
{
@@ -263,15 +263,11 @@ extern "C" int
rmdir (const char *dir)
{
int res = -1;
- DWORD devn;
- path_conv real_dir (dir, PC_SYM_NOFOLLOW | PC_FULL);
+ path_conv real_dir (dir, PC_SYM_NOFOLLOW | PC_FULL | PC_WRITABLE);
if (real_dir.error)
set_errno (real_dir.error);
- else if ((devn = real_dir.get_devn ()) == FH_PROC || devn == FH_REGISTRY
- || devn == FH_PROCESS)
- set_errno (EROFS);
else if (!real_dir.exists ())
set_errno (ENOENT);
else if (!real_dir.isdir ())