From ee55b59a2f879cb37f456705d4f6b6b6f64ac4bd Mon Sep 17 00:00:00 2001 From: Tal Aloni Date: Sun, 22 Jan 2017 22:26:14 +0200 Subject: [PATCH] Return STATUS_ACCESS_DENIED when writing to file that was opened for reading and vice versa --- SMBLibrary/Server/Helpers/NTFileSystemHelper.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SMBLibrary/Server/Helpers/NTFileSystemHelper.cs b/SMBLibrary/Server/Helpers/NTFileSystemHelper.cs index ff61bc7..4076a53 100644 --- a/SMBLibrary/Server/Helpers/NTFileSystemHelper.cs +++ b/SMBLibrary/Server/Helpers/NTFileSystemHelper.cs @@ -274,7 +274,7 @@ namespace SMBLibrary.Server } else // File { - if (stream == null) + if (stream == null || !stream.CanRead) { state.LogToServer(Severity.Debug, "ReadFile: Cannot read '{0}', Invalid Operation.", openFilePath); return NTStatus.STATUS_ACCESS_DENIED; @@ -335,7 +335,7 @@ namespace SMBLibrary.Server } else // File { - if (stream == null) + if (stream == null || !stream.CanWrite) { state.LogToServer(Severity.Debug, "WriteFile: Cannot write '{0}'. Invalid Operation.", openFilePath); return NTStatus.STATUS_ACCESS_DENIED;