Commit Graph

30 Commits

Author SHA1 Message Date
7551193ad7 update source copyright to 2024 2024-01-08 12:38:44 +00:00
a482183149 sys: FspPropagateTopFlags: check TopLevelIrp not completed
Add a check to verify that the TopLevelIrp has not been completed. This
became necessary because on recent Windows kernels, IRP's can have "IRP
extensions", which are freed when an IRP is completed. This can trigger
a recursive CLOSE with a top-level IRP that has been completed, which
can bugcheck the system.

Case in point: the new (Win11) NtCopyFileChunk creates IRP's with
COPY_INFORMATION attached. Upon completion of such an IRP the
SourceFileObject is freed, which results in a recursive IRP_MJ_CLOSE
with a completed top-level IRP, which would lead to a BSOD.
2023-08-29 13:15:37 +01:00
d626fb9563 sys: FspReleaseForModWrite
In some rare cases and under load the mapped page writer's TopLevelIrp
may be trashed by some outside component (observed on Windows 10 1909).

For this reason remove an assertion that could trigger in debug builds.
2023-01-09 15:30:42 +00:00
20680fa5b5 sys: FastIo: read/write implementation 2022-03-20 20:31:54 +00:00
751eaa69df update source copyright to 2022 2022-01-07 17:30:49 +00:00
6e3a8f70b2 update source copyright to 2021 2021-05-21 15:57:05 -07:00
42fd57904a sys: FspFsvolReadNonCached: trim ReadLength
During CreateProcess/CreateSection Windows locks the image file (using AcquireFileForNtCreateSection),
gets the image file size and then reads the image file. Unfortunately if the file system (erroneously) reads
past the file size, Windows can bugcheck. This allows a faulty or malicious file system to crash Windows.

This commit adds a check in WinFsp to mitigate this problem.
2020-04-10 19:24:43 -07:00
aedf01a384 update source copyright for 2020 2020-01-02 17:50:40 -08:00
26fe1a741b sys: FspPropagateTopFlags: propagate union of flags from top level IRP 2019-12-13 16:42:49 -08:00
d2de5e996c update source copyright for 2019 2019-02-28 10:39:31 -08:00
c9f1c1c60d sys: FspPropagateTopFlags: only touch TopLevelIrp if it looks like a kernel mode address 2018-09-27 09:31:09 -07:00
75ae8daf8f update commercial disclaimer 2018-08-21 18:09:33 -07:00
9bd9cf4fbd update source copyright notices for 2018 2018-01-03 15:29:38 -08:00
a57325e8af update source copyright notices for 2017 2017-01-05 13:56:18 -08:00
bd952253fb cosmetic fix 2016-10-11 11:39:17 -07:00
c7780cf7fa license: switch to GPLv3 from AGPLv3 2016-10-10 21:33:27 -07:00
016d015fe6 sys: file, callbacks: acquire MainFileNode resources if exists 2016-10-03 14:21:34 -07:00
968de4689c inc,src,tst: add AGPLv3 notices 2016-04-25 14:29:05 -07:00
6dd6ec6b47 sys: FspReleaseForCcFlush: another bug fix for crazy NTOS semantics on this callback 2016-04-18 12:13:33 -07:00
279778265f sys: FspAcquireForModWrite: fix deadlock between the Lazy Writer and the Mod Writer. 2016-04-13 12:15:56 -07:00
25911a808c sys: FspAcquireForCcFlush, FspReleaseForCcFlush 2016-04-08 23:33:30 -07:00
7ff99da000 update copyright notices for 2016 2016-03-17 14:59:46 -07:00
03522c5296 sys: FspAcquireCcFlush: improve/fix top level IRP handling 2016-03-12 19:03:06 -08:00
151247f1e6 sys: cached read/write testing 2016-03-11 14:44:17 -08:00
3dc2d9099d sys: callbacks.c 2016-03-09 23:51:36 -08:00
37f99929f7 sys: callbacks.c 2016-03-09 20:31:19 -08:00
319a0087f8 sys: DEBUGBREAK_EX 2016-03-09 15:27:20 -08:00
6f3f57366a sys: FspPropagateTopFlags 2016-03-03 10:46:49 -08:00
d46d1e169a sys: IRP_MJ_WRITE: implementation 2016-03-02 15:35:35 -08:00
e040c4d3cf sys: fast I/O and resource acquisition callbacks 2016-02-23 22:39:15 -08:00