From 2d8d3358c4b86032263afe0d5d9b27c53e097cd2 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 26 Jun 2022 02:08:58 +0200 Subject: [PATCH] FatFsUtil: Skip past entries with invalid filenames. --- Source/Core/Common/FatFsUtil.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp index 0176178b3a..f247ae3f73 100644 --- a/Source/Core/Common/FatFsUtil.cpp +++ b/Source/Core/Common/FatFsUtil.cpp @@ -615,6 +615,13 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, if (entry.fname[0] == '\0') break; + if (entry.fname[0] == '?' && entry.fname[1] == '\0' && entry.altname[0] == '\0') + { + // FATFS indicates entries that have neither a short nor a long filename this way. + // These are likely corrupted file entries so just skip them. + continue; + } + const std::string_view childname = entry.fname; // Check for path traversal attacks.