summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_virtual.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2004-04-14 13:40:07 +0000
committerCorinna Vinschen <corinna@vinschen.de>2004-04-14 13:40:07 +0000
commitddf9c4a7444970b5ad4c0ed4a82bdc7bd4964c15 (patch)
tree0f0c9b57900da5163c44f21cc1b3e7288e677d1f /winsup/cygwin/fhandler_virtual.cc
parentba1a97a18b5d629f62c691d62c69fe97da903b05 (diff)
downloadcygnal-ddf9c4a7444970b5ad4c0ed4a82bdc7bd4964c15.tar.gz
cygnal-ddf9c4a7444970b5ad4c0ed4a82bdc7bd4964c15.tar.bz2
cygnal-ddf9c4a7444970b5ad4c0ed4a82bdc7bd4964c15.zip
* fhandler.cc (fhandler_base::open): Accomodate query_write_control
query_state. (fhandler_base::fchown): New method. * fhandler.h: Declare fchown method in fhandler_base, fhandler_disk_file and fhandler_virtual. (enum query_state): Add query_write_control. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Set query_state to query_write_control. Only remove FILE_ATTRIBUTE_READONLY if not setting security descriptor. (fhandler_disk_file::fchown): New method. * fhandler_virtual.cc (fhandler_virtual::fchown): New method. * sec_acl.cc (setacl): Call write_sd with additional handle attribute. * security.cc (write_sd): Take handle argument. Only request owner if getting SE_RESTORE_NAME privilege failed. Only open file if NtSetSecurityObject failed or handle is NULL. (set_nt_attribute): Call write_sd with additional handle attribute. * security.h (write_sd): Declare with additional handle argument.
Diffstat (limited to 'winsup/cygwin/fhandler_virtual.cc')
-rw-r--r--winsup/cygwin/fhandler_virtual.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc
index 65be71b23..16b83923e 100644
--- a/winsup/cygwin/fhandler_virtual.cc
+++ b/winsup/cygwin/fhandler_virtual.cc
@@ -234,3 +234,11 @@ fhandler_virtual::fchmod (mode_t mode)
set_errno (EPERM);
return -1;
}
+
+int
+fhandler_virtual::fchown (__uid32_t uid, __gid32_t gid)
+{
+ /* Same as on Linux. */
+ set_errno (EPERM);
+ return -1;
+}