acadia-newlib/winsup/cygwin/release
Corinna Vinschen 2f05de4dbf Cygwin: fix all usages of NtQueryDirectoryObject
Due to reports on the Cygwin mailing list[1][2], it was uncovered
that a NtOpenDirectoryObject/NtQueryDirectoryObject/NtClose sequence
with NtQueryDirectoryObject iterating over the directory entries,
one entry per invocation, is not running atomically.  If new entries
are inserted into the queried directory, other entries may be moved
around and then accidentally show up twice while iterating.

Change (almost) all NtQueryDirectoryObject invocations so that it gets
a really big buffer (64K) and ideally fetches all entries at once.
This appears to work atomically.

"Almost" all, because fhandler_procsys::readdir can't be easily changed.

[1] https://cygwin.com/pipermail/cygwin/2021-July/248998.html
[2] https://cygwin.com/pipermail/cygwin/2021-August/249124.html

Fixes: e9c8cb3193 ("(format_proc_partitions): Revamp loop over existing harddisks by scanning the NT native \Device object directory and looking for Harddisk entries.")
Fixes: a998dd7055 ("Implement advisory file locking.")
Fixes: 3b7cd74bfd ("(winpids::enum_processes): Fetch Cygwin processes from listing of shared cygwin object dir in the native NT namespace.")
Fixes: 0d6f2b0117 ("syscalls.cc (sync_worker): Rewrite using native NT functions.")
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2021-08-19 16:42:23 +02:00
..
1.7.10
1.7.11
1.7.12
1.7.13
1.7.14
1.7.15
1.7.16
1.7.17
1.7.18
1.7.19
1.7.20
1.7.21
1.7.22
1.7.23
1.7.24
1.7.25
1.7.26
1.7.27
1.7.28
1.7.29
1.7.30
1.7.31
1.7.32
1.7.33
1.7.34
1.7.35
2.0.0
2.0.1
2.0.3
2.0.4
2.1.0
2.2.0
2.2.1
2.3.0
2.3.1
2.4.0
2.4.1
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.8.0
2.8.1
2.8.2
2.9.0
2.10.0
2.11.0
2.11.1
2.11.2
3.0
3.0.1 Cygwin: document secure_getenv 2019-02-19 14:34:18 -06:00
3.0.2 Cygwin: update 3.0.2 release file 2019-03-04 14:14:15 +01:00
3.0.3 Cygwin: posix timers: fix a deadlock 2019-03-08 12:57:42 +01:00
3.0.4 Cygwin: acls: allow converting empty acl to text 2019-03-13 12:09:11 +01:00
3.0.5 Cygwin: document ps -W duplication bug fix 2019-03-31 12:50:50 +02:00
3.0.6 Cygwin: add latest signal handling fixes to release notes 2019-04-06 18:09:41 +02:00
3.0.7 Cygwin: Add release info for 3.0.7 2019-04-30 18:49:23 +02:00
3.1.0 Cygwin: add strtold fix to release message 2019-12-16 16:39:17 +01:00
3.1.1 Cygwin: add 3.1.1 release text belatedly 2019-12-18 10:47:43 +01:00
3.1.2 Cygwin: add 3.1.2 release text 2019-12-21 11:44:08 +01:00
3.1.3 Cygwin: move 3.1.3 to 3.1.4 release document 2020-02-18 11:22:57 +01:00
3.1.4 Cygwin: add @cjksingle to release docs 2020-02-18 11:35:42 +01:00
3.1.5 Cygwin: stat: fix st_mode of fifos again 2020-05-28 13:34:19 -04:00
3.1.6 Cygwin: add microcode patch to release messages 2020-07-09 09:55:34 +02:00
3.1.7 Cygwin: main exception handler (64-bit): continue GCC exceptions 2020-08-18 07:04:25 -04:00
3.2.0 Cygwin: add "app execution aliases" treatment to release notes 2021-03-23 16:54:41 +01:00
3.3.0 Cygwin: fix all usages of NtQueryDirectoryObject 2021-08-19 16:42:23 +02:00