* path.cc (symlink_info::check): Don't pass EaBuffer to NtCreateFile if it has

indicated that it isn't appropriate.
* ntdll.h (STATUS_EAS_NOT_SUPPORTED): Define.
* winsup.h: Remove __builtin* defines.
This commit is contained in:
Christopher Faylor 2008-05-23 07:13:47 +00:00
parent 3c77dcff9e
commit 81adfe2862
4 changed files with 3525 additions and 3513 deletions

View File

@ -1,3 +1,11 @@
2008-05-23 Christopher Faylor <me+cygwin@cgf.cx>
* path.cc (symlink_info::check): Don't pass EaBuffer to NtCreateFile if
it has indicated that it isn't appropriate.
* ntdll.h (STATUS_EAS_NOT_SUPPORTED): Define.
* winsup.h: Remove __builtin* defines.
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
* grp.cc (internal_getgroups): Fix thinko. Only add enabled groups to

View File

@ -28,6 +28,7 @@
#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS) 0xc0000034)
#define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS) 0xc000003A)
#define STATUS_SHARING_VIOLATION ((NTSTATUS) 0xc0000043)
#define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS) 0xC000004f)
#define STATUS_EA_TOO_LARGE ((NTSTATUS) 0xc0000050)
#define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS) 0xc0000051)
#define STATUS_NO_EAS_ON_FILE ((NTSTATUS) 0xc0000052)

View File

@ -2368,16 +2368,28 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt,
FILE_OPEN_REPARSE_POINT
| FILE_OPEN_FOR_BACKUP_INTENT,
&nfs_aol_ffei, sizeof nfs_aol_ffei);
if (status == STATUS_ACCESS_DENIED) /* No right to access EAs? */
if (status == STATUS_ACCESS_DENIED || status == STATUS_EAS_NOT_SUPPORTED) /* No right to access EAs? */
{
no_ea = true;
void *eabuf;
ULONG easize;
if (status == STATUS_EAS_NOT_SUPPORTED)
{
eabuf = NULL;
easize = 0;
}
else
{
eabuf = (void *) &nfs_aol_ffei;
easize = sizeof nfs_aol_ffei;
}
status = NtCreateFile (&h,
READ_CONTROL | FILE_READ_ATTRIBUTES,
&attr, &io, NULL, FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_VALID_FLAGS, FILE_OPEN,
FILE_OPEN_REPARSE_POINT
| FILE_OPEN_FOR_BACKUP_INTENT,
&nfs_aol_ffei, sizeof nfs_aol_ffei);
eabuf, easize);
}
if (NT_SUCCESS (status)
&& NT_SUCCESS (status

View File

@ -21,15 +21,6 @@ details. */
#define __INSIDE_CYGWIN__
#define strlen __builtin_strlen
#define strcmp __builtin_strcmp
#define strcpy __builtin_strcpy
#define memcpy __builtin_memcpy
#define memcmp __builtin_memcmp
#ifdef HAVE_BUILTIN_MEMSET
# define memset __builtin_memset
#endif
#define NO_COPY __attribute__((nocommon)) __attribute__((section(".data_cygwin_nocopy")))
#define NO_COPY_INIT __attribute__((section(".data_cygwin_nocopy")))