From: corinna Date: Tue, 20 May 2008 18:26:45 +0000 (+0000) Subject: * path.cc (symlink_worker): Fix EA buffer size info given to X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=31f635c0accc7d1b917be915ed98b0ee5bee2dd4;p=pf3gnuchains%2Fpf3gnuchains3x.git * path.cc (symlink_worker): Fix EA buffer size info given to NtCreateFile. (symlink_info::check_nfs_symlink): Get 64K buffer for EA buffer. Change EA buffer size info given to NtQueryEaFile accordingly. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c1d114b7af..c7906ecae3 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,12 @@ 2008-05-20 Corinna Vinschen + * path.cc (symlink_worker): Fix EA buffer size info given to + NtCreateFile. + (symlink_info::check_nfs_symlink): Get 64K buffer for EA buffer. + Change EA buffer size info given to NtQueryEaFile accordingly. + +2008-05-20 Corinna Vinschen + * path.cc (symlink_info::check_shortcut): Minimize requested file access flags. (symlink_info::check_sysfile): Ditto. Add missing `else'. diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index fb69531db0..d01b7f8a25 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1615,7 +1615,7 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym, FILE_SHARE_VALID_FLAGS, FILE_CREATE, FILE_SYNCHRONOUS_IO_NONALERT | FILE_OPEN_FOR_BACKUP_INTENT, - pffei, NT_MAX_PATH); + pffei, NT_MAX_PATH * sizeof (WCHAR)); if (!NT_SUCCESS (status)) { __seterrno_from_nt_status (status); @@ -2054,10 +2054,9 @@ symlink_info::check_nfs_symlink (HANDLE h) fgei_buf.fgei.NextEntryOffset = 0; fgei_buf.fgei.EaNameLength = sizeof (NFS_SYML_TARGET) - 1; stpcpy (fgei_buf.fgei.EaName, NFS_SYML_TARGET); - pffei = (PFILE_FULL_EA_INFORMATION) tp.c_get (); - status = NtQueryEaFile (h, &io, pffei, NT_MAX_PATH, TRUE, - &fgei_buf.fgei, sizeof fgei_buf, - NULL, TRUE); + pffei = (PFILE_FULL_EA_INFORMATION) tp.w_get (); + status = NtQueryEaFile (h, &io, pffei, NT_MAX_PATH * sizeof (WCHAR), TRUE, + &fgei_buf.fgei, sizeof fgei_buf, NULL, TRUE); if (NT_SUCCESS (status) && pffei->EaValueLength > 0) { PWCHAR spath = (PWCHAR)