From 1bef48796e4df655c71ddd92a00417dbe9e530ca Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 12 Nov 2017 21:11:22 +0100 Subject: [PATCH] [NTOSKRNL] Add a FIXME in NtWriteFile() that explains how broken is our current implementation regarding read-only FSDs --- ntoskrnl/io/iomgr/iofunc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ntoskrnl/io/iomgr/iofunc.c b/ntoskrnl/io/iomgr/iofunc.c index 5aa67ee3e10..93f1fe4e5fd 100644 --- a/ntoskrnl/io/iomgr/iofunc.c +++ b/ntoskrnl/io/iomgr/iofunc.c @@ -3499,7 +3499,13 @@ NtWriteFile(IN HANDLE FileHandle, CapturedByteOffset.QuadPart = 0; IOTRACE(IO_API_DEBUG, "FileHandle: %p\n", FileHandle); - /* Get File Object */ + /* Get File Object + * FIXME: We should call ObReferenceFileObjectForWrite() instead to + * check whether write access was actually granted. If not it will + * fail and we will return. + * That would allow avoiding ASSERT on FastIO later on if the FSD + * is read-only + */ Status = ObReferenceObjectByHandle(FileHandle, 0, IoFileObjectType,