aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLectem <lectem@gmail.com>2017-08-28 00:08:54 +0200
committerGitHub <noreply@github.com>2017-08-28 00:08:54 +0200
commit951f416398b3aa0b32969b4a391a3103443ad99e (patch)
tree6caa61bf549cceb233cfb48fb2d1c596938605a3 /src
parentadac4aa0f586c7aa2a3c19aa4e687d827dc86195 (diff)
SFileSetFilePointer error when new pointer is <0
The standard behaviour for fseek / SetFilePointer when the new pointed value would be negative is to not move the pointer and return an error. See : https://msdn.microsoft.com/en-us/library/windows/desktop/aa365541(v=vs.85).aspx `If a new file pointer is a negative value, the function fails, the file pointer is not moved, and the code returned by GetLastError is ERROR_NEGATIVE_SEEK.`
Diffstat (limited to 'src')
-rw-r--r--src/SFileReadFile.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/SFileReadFile.cpp b/src/SFileReadFile.cpp
index 485b361..f91d2af 100644
--- a/src/SFileReadFile.cpp
+++ b/src/SFileReadFile.cpp
@@ -867,8 +867,8 @@ DWORD WINAPI SFileSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * plFilePosHi
// If moving backward, don't allow the new position go negative
if((LONGLONG)DeltaPos < 0)
{
- if(NewPosition > FileSize)
- NewPosition = 0;
+ if(NewPosition > FileSize) // Position is negative
+ return SFILE_INVALID_POS;
}
// If moving forward, don't allow the new position go past the end of the file