Commit cd662ceb54a2638dbc43031347402a7139621907

Ryan C. Gordon 2023-07-01T00:30:23

rwops: Use SetFilePointerEx on Windows for appending writes. Fixes #7900. (cherry picked from commit 769bf2ebcca8f0cbcde4ec50008942f4eda57f4a)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
diff --git a/src/file/SDL_rwops.c b/src/file/SDL_rwops.c
index e5a1674..87307ab 100644
--- a/src/file/SDL_rwops.c
+++ b/src/file/SDL_rwops.c
@@ -277,8 +277,9 @@ windows_file_write(SDL_RWops *context, const void *ptr, size_t size,
 
     /* if in append mode, we must go to the EOF before write */
     if (context->hidden.windowsio.append) {
-        if (SetFilePointer(context->hidden.windowsio.h, 0L, NULL, FILE_END) ==
-            INVALID_SET_FILE_POINTER) {
+        LARGE_INTEGER windowsoffset;
+        windowsoffset.QuadPart = 0;
+        if (!SetFilePointerEx(context->hidden.windowsio.h, windowsoffset, &windowsoffset, FILE_END)) {
             SDL_Error(SDL_EFWRITE);
             return 0;
         }