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) {