From 6e070c257c9026b433cdae7b0ad7f2ba909558bf Mon Sep 17 00:00:00 2001 From: Christopher Faylor <me@cgf.cx> Date: Thu, 1 Mar 2007 15:13:47 +0000 Subject: [PATCH] * Makefile (DLL_OFILES): Remove ntea.o * environ.cc (set_ntea): Delete. (parse_thing): Delete "ntea" setting. * fhandler.cc (fhandler_base::open): Remove allow_ntea considerations. (check_posix_perm): Ditto. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto. (fhandler_base::open_fs): Ditto. (fhandler_disk_file::mkdir): Ditto. * path.cc (symlink_worker): Ditto. * security.cc (get_file_attribute): Ditto. (set_file_attribute): Ditto. * security.h: Remove allow_ntea declaration. --- winsup/cygwin/ChangeLog | 15 +++++++++++++++ winsup/cygwin/Makefile.in | 2 +- winsup/cygwin/environ.cc | 7 ------- winsup/cygwin/fhandler.cc | 11 ++--------- winsup/cygwin/fhandler_disk_file.cc | 17 ++--------------- winsup/cygwin/path.cc | 4 ---- winsup/cygwin/security.cc | 26 ++++---------------------- winsup/cygwin/security.h | 1 - 8 files changed, 24 insertions(+), 59 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e99409e9c..00ee93c78 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,18 @@ +2007-03-01 Christopher Faylor <me@cgf.cx> + + * Makefile (DLL_OFILES): Remove ntea.o + * environ.cc (set_ntea): Delete. + (parse_thing): Delete "ntea" setting. + * fhandler.cc (fhandler_base::open): Remove allow_ntea considerations. + (check_posix_perm): Ditto. + * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto. + (fhandler_base::open_fs): Ditto. + (fhandler_disk_file::mkdir): Ditto. + * path.cc (symlink_worker): Ditto. + * security.cc (get_file_attribute): Ditto. + (set_file_attribute): Ditto. + * security.h: Remove allow_ntea declaration. + 2007-02-27 Corinna Vinschen <corinna@vinschen.de> * path.cc (close_user_proc_parms_cwd_handle): Remove. diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 239a500a4..571aac58a 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -136,7 +136,7 @@ DLL_OFILES:=assert.o autoload.o bsdlib.o ctype.o cxx.o cygheap.o cygthread.o \ fhandler_zero.o flock.o fnmatch.o fork.o fts.o ftw.o getopt.o glob.o \ grp.o heap.o hookapi.o inet_addr.o inet_network.o init.o ioctl.o ipc.o \ localtime.o lsearch.o malloc_wrapper.o memmem.o minires-os-if.o \ - minires.o miscfuncs.o mktemp.o mmap.o msg.o net.o netdb.o nftw.o ntea.o \ + minires.o miscfuncs.o mktemp.o mmap.o msg.o net.o netdb.o nftw.o \ passwd.o path.o pinfo.o pipe.o poll.o posix_ipc.o pthread.o regcomp.o \ regerror.o regexec.o regfree.o registry.o resource.o rexec.o rcmd.o \ scandir.o sched.o sec_acl.o sec_helper.o security.o select.o sem.o \ diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc index a031a7bda..54063d889 100644 --- a/winsup/cygwin/environ.cc +++ b/winsup/cygwin/environ.cc @@ -541,12 +541,6 @@ set_proc_retry (const char *buf) child_info::retry_count = strtoul (buf, NULL, 0); } -static void -set_ntea (const char *buf) -{ - allow_ntea = (buf && strcasematch (buf, "yes")); -} - static void set_ntsec (const char *buf) { @@ -591,7 +585,6 @@ static struct parse_thing {"export", {&export_settings}, justset, NULL, {{false}, {true}}}, {"forkchunk", {func: set_chunksize}, isfunc, NULL, {{0}, {0}}}, {"glob", {func: &glob_init}, isfunc, NULL, {{0}, {s: "normal"}}}, - {"ntea", {func: set_ntea}, isfunc, NULL, {{0}, {s: "yes"}}}, {"ntsec", {func: set_ntsec}, isfunc, NULL, {{0}, {s: "yes"}}}, {"proc_retry", {func: set_proc_retry}, isfunc, NULL, {{0}, {5}}}, {"reset_com", {&reset_com}, justset, NULL, {{false}, {true}}}, diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index f92e844c0..33ef6ae4e 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -495,13 +495,11 @@ fhandler_base::open (int flags, mode_t mode) create_options = FILE_OPEN_FOR_BACKUP_INTENT; break; case query_stat_control: - access = READ_CONTROL | FILE_READ_ATTRIBUTES - | (allow_ntea ? FILE_READ_EA : 0); + access = READ_CONTROL | FILE_READ_ATTRIBUTES; create_options = FILE_OPEN_FOR_BACKUP_INTENT; break; case query_write_control: - access = READ_CONTROL | WRITE_OWNER | WRITE_DAC | FILE_WRITE_ATTRIBUTES - | (allow_ntea ? FILE_WRITE_EA : 0); + access = READ_CONTROL | WRITE_OWNER | WRITE_DAC | FILE_WRITE_ATTRIBUTES; create_options = FILE_OPEN_FOR_BACKUP_INTENT | FILE_OPEN_FOR_RECOVERY; break; case query_write_attributes: @@ -1591,11 +1589,6 @@ fhandler_base::fsync () static int check_posix_perm (const char *fname, int v) { - /* ntea is ok for supporting permission bits but it doesn't support - full POSIX security settings. */ - if (v == _PC_POSIX_PERMISSIONS && allow_ntea) - return 1; - if (!allow_ntsec) return 0; diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 3e2e059f9..f40bcb52d 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -653,15 +653,13 @@ fhandler_disk_file::fchmod (mode_t mode) { /* If the file couldn't be opened, that's really only a problem if ACLs or EAs should get written. */ - if ((allow_ntsec && pc.has_acls ()) || allow_ntea) + if (allow_ntsec && pc.has_acls ()) return -1; } } - if ((allow_ntsec && pc.has_acls ()) || allow_ntea) + if (allow_ntsec && pc.has_acls ()) { - if (!allow_ntsec && allow_ntea) /* Not necessary when manipulating SD. */ - SetFileAttributes (pc, (DWORD) pc & ~FILE_ATTRIBUTE_READONLY); if (pc.isdir ()) mode |= S_IFDIR; if (!set_file_attribute (pc.has_acls (), get_io_handle (), pc, @@ -1209,14 +1207,6 @@ fhandler_base::open_fs (int flags, mode_t mode) return 0; } - /* Attributes may be set only if a file is _really_ created. - This code is now only used for ntea here since the files - security attributes are set in CreateFile () now. */ - if (flags & O_CREAT - && GetLastError () != ERROR_ALREADY_EXISTS - && !allow_ntsec && allow_ntea) - set_file_attribute (false, NULL, get_win32_name (), mode); - set_fs_flags (pc.fs_flags ()); out: @@ -1435,9 +1425,6 @@ fhandler_disk_file::mkdir (mode_t mode) if (CreateDirectoryA (get_win32_name (), &sa)) { - if (!allow_ntsec && allow_ntea) - set_file_attribute (false, NULL, get_win32_name (), - S_IFDIR | ((mode & 07777) & ~cygheap->umask)); #ifdef HIDDEN_DOT_FILES char *c = strrchr (real_dir.get_win32 (), '\\'); if ((c && c[1] == '.') || *get_win32_name () == '.') diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index a29eaa7e6..72d8220ee 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2976,10 +2976,6 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym, if (success) { CloseHandle (h); - if (!allow_ntsec && allow_ntea) - set_file_attribute (false, NULL, win32_path.get_win32 (), - S_IFLNK | S_IRWXU | S_IRWXG | S_IRWXO); - DWORD attr = use_winsym ? FILE_ATTRIBUTE_READONLY : FILE_ATTRIBUTE_SYSTEM; #ifdef HIDDEN_DOT_FILES diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc index cc93ae61a..8a468cb24 100644 --- a/winsup/cygwin/security.cc +++ b/winsup/cygwin/security.cc @@ -1542,20 +1542,7 @@ get_file_attribute (int use_ntsec, HANDLE handle, const char *file, if (gidret) *gidret = myself->gid; - if (!attribute) - return 0; - - if (allow_ntea) - { - int oatt = *attribute; - res = read_ea (handle, file, ".UNIXATTR", (char *)attribute, - sizeof (*attribute)); - *attribute |= oatt; - } - else - res = 0; - - return res > 0 ? 0 : -1; + return -1; } bool @@ -1930,16 +1917,11 @@ int set_file_attribute (bool use_ntsec, HANDLE handle, const char *file, __uid32_t uid, __gid32_t gid, int attribute) { - int ret = 0; - + int ret; if (use_ntsec && allow_ntsec) ret = set_nt_attribute (handle, file, uid, gid, attribute); - else if (allow_ntea && !write_ea (handle, file, ".UNIXATTR", - (char *) &attribute, sizeof (attribute))) - { - __seterrno (); - ret = -1; - } + else + ret = 0; syscall_printf ("%d = set_file_attribute (%s, %d, %d, %p)", ret, file, uid, gid, attribute); return ret; diff --git a/winsup/cygwin/security.h b/winsup/cygwin/security.h index a5c9c69ce..1270e105d 100644 --- a/winsup/cygwin/security.h +++ b/winsup/cygwin/security.h @@ -330,7 +330,6 @@ legal_sid_type (SID_NAME_USE type) || type == SidTypeAlias || type == SidTypeWellKnownGroup; } -extern bool allow_ntea; extern bool allow_ntsec; extern bool allow_smbntsec;