From 4312ce14ff9262a3aa73c90a4f26de443b28b3a5 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 16 Feb 2022 22:57:25 -0800 Subject: [PATCH] Util: Failed file mapping should return NULL on POSIX --- CHANGES | 1 + src/util/vfs/vfs-fd.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index b22181c15..846ab2a3c 100644 --- a/CHANGES +++ b/CHANGES @@ -39,6 +39,7 @@ Other fixes: - FFmpeg: Fix GIF recording (fixes mgba.io/i/2393) - GB: Fix temporary saves - GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396) + - VFS: Failed file mapping should return NULL on POSIX Misc: - Core: Suspend runloop when a core crashes - GB Video: Add default SGB border diff --git a/src/util/vfs/vfs-fd.c b/src/util/vfs/vfs-fd.c index b67d701fa..01a08e7c7 100644 --- a/src/util/vfs/vfs-fd.c +++ b/src/util/vfs/vfs-fd.c @@ -132,7 +132,11 @@ static void* _vfdMap(struct VFile* vf, size_t size, int flags) { if (flags & MAP_WRITE) { mmapFlags = MAP_SHARED; } - return mmap(0, size, PROT_READ | PROT_WRITE, mmapFlags, vfd->fd, 0); + void* mapped = mmap(0, size, PROT_READ | PROT_WRITE, mmapFlags, vfd->fd, 0); + if (mapped == MAP_FAILED) { + return NULL; + } + return mapped; } static void _vfdUnmap(struct VFile* vf, void* memory, size_t size) {