From 8a2bf09800b077578e2789f177f64b0291d0aec9 Mon Sep 17 00:00:00 2001 From: Maschell Date: Thu, 16 Jun 2022 15:42:17 +0200 Subject: [PATCH] wutdevoptab: Fix setting mode flags --- libraries/wutdevoptab/devoptab_fs_utils.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libraries/wutdevoptab/devoptab_fs_utils.c b/libraries/wutdevoptab/devoptab_fs_utils.c index 0d55046a..3ac326f6 100644 --- a/libraries/wutdevoptab/devoptab_fs_utils.c +++ b/libraries/wutdevoptab/devoptab_fs_utils.c @@ -42,6 +42,13 @@ mode_t __wut_fs_translate_mode(FSStat fileStat) { retMode |= S_IFDIR; } else if ((fileStat.flags & FS_STAT_FILE) == FS_STAT_FILE) { retMode |= S_IFREG; + } else if(fileStat.size == 0) { + // Mounted paths like /vol/external01 have no flags set. + // If no flag is set and the size is 0, it's a (root) dir + retMode |= S_IFDIR; + } else if (fileStat.size > 0) { + // Some regular Wii U files have no type info but will have a size + retMode |= S_IFREG; } mode_t ownerFlags = (fileStat.mode & (FS_MODE_READ_OWNER | FS_MODE_WRITE_OWNER | FS_MODE_EXEC_OWNER)) >> 2;