* dir.cc (mkdir): Call set_file_attribute with additional handle
argument. * fhandler.cc (fhandler_base::fchmod): New method. * fhandler.h: Declare fchmod method in fhandler_base, fhandler_disk_file and fhandler_virtual. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): New method. (fhandler_base::open_fs): Call set_file_attribute with additional handle argument. * fhandler_virtual.cc (fhandler_virtual::fchmod): New method. * path.cc (symlink_worker): Call set_file_attribute with additional handle argument. * security.cc (get_nt_object_security): New function. (get_nt_object_attribute): Call get_nt_object_security. (set_nt_attribute): Add handle argument. Call get_nt_object_security first, read_sd only if that fails. (set_file_attribute): Add handle argument. * security.h (set_file_attribute): Declare with additional handle argument. * syscalls.cc (stat_suffixes): Move to beginning of file. (chown_worker): Call set_file_attribute with additional handle argument. (chmod): Reorganize to call fhandler's fchmod method eventually. (fchmod): Ditto.
This commit is contained in:
@@ -251,8 +251,8 @@ extern bool allow_smbntsec;
|
||||
int __stdcall set_process_privileges ();
|
||||
int __stdcall get_file_attribute (int, HANDLE, const char *, mode_t *,
|
||||
__uid32_t * = NULL, __gid32_t * = NULL);
|
||||
int __stdcall set_file_attribute (int, const char *, int);
|
||||
int __stdcall set_file_attribute (int, const char *, __uid32_t, __gid32_t, int);
|
||||
int __stdcall set_file_attribute (bool, HANDLE, const char *, int);
|
||||
int __stdcall set_file_attribute (bool, HANDLE, const char *, __uid32_t, __gid32_t, int);
|
||||
int __stdcall get_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type, mode_t *,
|
||||
__uid32_t * = NULL, __gid32_t * = NULL);
|
||||
LONG __stdcall read_sd (const char *file, security_descriptor &sd);
|
||||
|
Reference in New Issue
Block a user