From 1df35772d6d2182a35cb2e3d07227b8765eef2d5 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 14 Sep 2010 14:10:39 +0000 Subject: [PATCH] * path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile are stored in the right order when fetching the info from the NtQueryDirectoryFile result. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/path.cc | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 80a705521..01ffad067 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2010-09-14 Corinna Vinschen + + * path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile + are stored in the right order when fetching the info from the + NtQueryDirectoryFile result. + 2010-09-13 Corinna Vinschen * fhandler_process.cc (get_mem_values): Simplify code. Fix diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 470546586..d29aff028 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2525,6 +2525,14 @@ restart: { fileattr = fdi_buf.fdi.FileAttributes; memcpy (pfnoi, &fdi_buf.fdi.CreationTime, sizeof *pfnoi); + /* Amazing, but true: The FILE_NETWORK_OPEN_INFORMATION + structure has the AllocationSize and EndOfFile members + interchanged relative to the directory information + classes. */ + pfnoi->AllocationSize.QuadPart + = fdi_buf.fdi.AllocationSize.QuadPart; + pfnoi->EndOfFile.QuadPart + = fdi_buf.fdi.EndOfFile.QuadPart; } } ext_tacked_on = !!*ext_here;