From c22aaadf7f20eb5e36324dffbb57677f3db1cfdc 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 0a34e009b..bef73d4bb 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,7 @@ Other fixes: - FFmpeg: Fix crash when encoding audio with some containers - FFmpeg: Fix GIF recording (fixes mgba.io/i/2393) - GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396) + - VFS: Failed file mapping should return NULL on POSIX Misc: - Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074) diff --git a/src/util/vfs/vfs-fd.c b/src/util/vfs/vfs-fd.c index c15ab5ca1..3570d99f9 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) {