diff --git a/src/core/libraries/kernel/file_system.cpp b/src/core/libraries/kernel/file_system.cpp index 6c50248b4..253a3a0fa 100644 --- a/src/core/libraries/kernel/file_system.cpp +++ b/src/core/libraries/kernel/file_system.cpp @@ -1648,18 +1648,23 @@ s64 PS4_SYSV_ABI sceKernelPwritev(s32 fd, const OrbisKernelIovec* iov, s32 iovcn } s32 PS4_SYSV_ABI posix_unlink(const char* path) { - if (strlen(path) > 255) { - *__Error() = POSIX_ENAMETOOLONG; + if (path == nullptr) { + *__Error() = POSIX_EFAULT; return -1; } - if (path == nullptr) { - *__Error() = POSIX_EINVAL; + if (strlen(path) > 255) { + *__Error() = POSIX_ENAMETOOLONG; return -1; } auto* h = Common::Singleton::Instance(); auto* mnt = Common::Singleton::Instance(); + if (!mnt->Exists(path)) { + *__Error() = POSIX_ENOENT; + return -1; + } + bool ro = false; const auto host_path = mnt->GetHostPath(path, &ro); if (host_path.empty()) {