From cafc0eae1b988287183f42f4aed18d48c79d51b2 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Thu, 28 Mar 2024 00:25:48 -0700 Subject: [PATCH] kern: fix longstanding bug in ConvertToKMemoryPermission --- libmesosphere/include/mesosphere/kern_k_memory_block.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmesosphere/include/mesosphere/kern_k_memory_block.hpp b/libmesosphere/include/mesosphere/kern_k_memory_block.hpp index 9d0a9773..f021391e 100644 --- a/libmesosphere/include/mesosphere/kern_k_memory_block.hpp +++ b/libmesosphere/include/mesosphere/kern_k_memory_block.hpp @@ -177,7 +177,7 @@ namespace ams::kern { }; constexpr KMemoryPermission ConvertToKMemoryPermission(ams::svc::MemoryPermission perm) { - return static_cast((util::ToUnderlying(perm) & KMemoryPermission_UserMask) | KMemoryPermission_KernelRead | ((util::ToUnderlying(perm) & KMemoryPermission_UserWrite) << KMemoryPermission_KernelShift) | (perm == ams::svc::MemoryPermission_None ? KMemoryPermission_NotMapped : KMemoryPermission_None)); + return static_cast((util::ToUnderlying(perm) & KMemoryPermission_UserMask) | KMemoryPermission_KernelRead | ((util::ToUnderlying(perm) & ams::svc::MemoryPermission_Write) ? KMemoryPermission_KernelWrite : KMemoryPermission_None) | (perm == ams::svc::MemoryPermission_None ? KMemoryPermission_NotMapped : KMemoryPermission_None)); } enum KMemoryAttribute : u8 {