summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-09-14 14:10:39 +0000
committerCorinna Vinschen <corinna@vinschen.de>2010-09-14 14:10:39 +0000
commit1df35772d6d2182a35cb2e3d07227b8765eef2d5 (patch)
treeab7174d428a28cd4bbe3fb6267d9896bcb23cb95 /winsup/cygwin/path.cc
parent27e79675f8b36204c04433a6519bcdb5c4511bd9 (diff)
downloadcygnal-1df35772d6d2182a35cb2e3d07227b8765eef2d5.tar.gz
cygnal-1df35772d6d2182a35cb2e3d07227b8765eef2d5.tar.bz2
cygnal-1df35772d6d2182a35cb2e3d07227b8765eef2d5.zip
* path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile
are stored in the right order when fetching the info from the NtQueryDirectoryFile result.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc8
1 files changed, 8 insertions, 0 deletions
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;