Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2007-07-19 21:42:11 +0400
committerCorinna Vinschen <corinna@vinschen.de>2007-07-19 21:42:11 +0400
commitf36b37ed6ea793ce33ec84c694f772fb6de1ddd4 (patch)
treedf4965883eb9adf4b405bebe4baf248ff3ad4118 /winsup/cygwin/security.cc
parente25b3402ac1b18d3c0ccde2faba94b8ad42ad09a (diff)
* security.cc (set_nt_attribute): Remove.
(set_file_attribute): Do it yourself instead of calling set_nt_attribute.
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r--winsup/cygwin/security.cc31
1 files changed, 10 insertions, 21 deletions
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc
index df4953a44..5fca3d8ed 100644
--- a/winsup/cygwin/security.cc
+++ b/winsup/cygwin/security.cc
@@ -1892,32 +1892,21 @@ set_security_attribute (int attribute, PSECURITY_ATTRIBUTES psa,
attribute, sd);
}
-static int
-set_nt_attribute (HANDLE handle, const char *file,
- __uid32_t uid, __gid32_t gid, int attribute)
-{
- security_descriptor sd;
-
- if ((!handle || get_nt_object_security (handle, SE_FILE_OBJECT, sd))
- && read_sd (file, sd) <= 0)
- {
- debug_printf ("read_sd %E");
- return -1;
- }
-
- if (!alloc_sd (uid, gid, attribute, sd))
- return -1;
-
- return write_sd (handle, file, sd);
-}
-
int
set_file_attribute (bool use_ntsec, HANDLE handle, const char *file,
__uid32_t uid, __gid32_t gid, int attribute)
{
- int ret;
+ int ret = -1;
+
if (use_ntsec && allow_ntsec)
- ret = set_nt_attribute (handle, file, uid, gid, attribute);
+ {
+ security_descriptor sd;
+
+ if (((handle && !get_nt_object_security (handle, SE_FILE_OBJECT, sd))
+ || read_sd (file, sd) > 0)
+ && alloc_sd (uid, gid, attribute, sd))
+ ret = write_sd (handle, file, sd);
+ }
else
ret = 0;
syscall_printf ("%d = set_file_attribute (%s, %d, %d, %p)",