[FFmpeg-devel] [PATCH] avutil/file: fix av_file_map file mapping on Windows

Kacper Michajłow kasper93 at gmail.com
Mon Dec 9 21:20:02 EET 2024


This makes the behavior of av_file_map() the same on Windows as it is on
other platforms. The file is opened as read-only, but the mapping is
copy-on-write, allowing the user to write to the memory pages returned
by av_file_map().

This commit fixes libavutil\tests\file.c test, which would crash when
trying to write to a read-only memory page.

Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
---
 libavutil/file.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavutil/file.c b/libavutil/file.c
index db8507286b..4ef940a6c3 100644
--- a/libavutil/file.c
+++ b/libavutil/file.c
@@ -112,7 +112,7 @@ int av_file_map(const char *filename, uint8_t **bufptr, size_t *size,
             return -1;
         }
 
-        ptr = MapViewOfFile(mh, FILE_MAP_READ, 0, 0, *size);
+        ptr = MapViewOfFile(mh, FILE_MAP_COPY, 0, 0, *size);
         CloseHandle(mh);
         if (!ptr) {
             av_log(&file_log_ctx, AV_LOG_ERROR, "Error occurred in MapViewOfFile()\n");
-- 
2.45.1



More information about the ffmpeg-devel mailing list