summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-11-11 16:39:25 -0500
committerGravatar Zach Hilman2018-11-18 10:53:47 -0500
commite696ed1f4d20f28f8b26c637498962938df7d96f (patch)
tree79222d795725ba7b19f0aa9326041e236f9a22d8 /src/core/hle/kernel/svc.cpp
parentqt/main: Register Qt Software Keyboard frontend with AM (diff)
downloadyuzu-e696ed1f4d20f28f8b26c637498962938df7d96f.tar.gz
yuzu-e696ed1f4d20f28f8b26c637498962938df7d96f.tar.xz
yuzu-e696ed1f4d20f28f8b26c637498962938df7d96f.zip
am: Deglobalize software keyboard applet
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r--src/core/hle/kernel/svc.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 20af65ee7..f84b00a00 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -1207,14 +1207,15 @@ static ResultCode CreateTransferMemory(Handle* handle, VAddr addr, u64 size, u32
1207 return ERR_INVALID_ADDRESS; 1207 return ERR_INVALID_ADDRESS;
1208 } 1208 }
1209 1209
1210 if (addr + size <= addr) { 1210 if (!IsValidAddressRange(addr, size)) {
1211 LOG_ERROR(Kernel_SVC, "Address and size cause overflow! (address={:016X}, size={:016X})", 1211 LOG_ERROR(Kernel_SVC, "Address and size cause overflow! (address={:016X}, size={:016X})",
1212 addr, size); 1212 addr, size);
1213 return ERR_INVALID_ADDRESS_STATE; 1213 return ERR_INVALID_ADDRESS_STATE;
1214 } 1214 }
1215 1215
1216 if (permissions > static_cast<u32>(MemoryPermission::ReadWrite) || 1216 const auto perms = static_cast<MemoryPermission>(permissions);
1217 permissions == static_cast<u32>(MemoryPermission::Write)) { 1217 if (perms != MemoryPermission::None && perms != MemoryPermission::Read &&
1218 perms != MemoryPermission::ReadWrite) {
1218 LOG_ERROR(Kernel_SVC, "Invalid memory permissions for transfer memory! (perms={:08X})", 1219 LOG_ERROR(Kernel_SVC, "Invalid memory permissions for transfer memory! (perms={:08X})",
1219 permissions); 1220 permissions);
1220 return ERR_INVALID_MEMORY_PERMISSIONS; 1221 return ERR_INVALID_MEMORY_PERMISSIONS;
@@ -1222,7 +1223,6 @@ static ResultCode CreateTransferMemory(Handle* handle, VAddr addr, u64 size, u32
1222 1223
1223 auto& kernel = Core::System::GetInstance().Kernel(); 1224 auto& kernel = Core::System::GetInstance().Kernel();
1224 auto& handle_table = Core::CurrentProcess()->GetHandleTable(); 1225 auto& handle_table = Core::CurrentProcess()->GetHandleTable();
1225 const auto perms = static_cast<MemoryPermission>(permissions);
1226 const auto shared_mem_handle = SharedMemory::Create( 1226 const auto shared_mem_handle = SharedMemory::Create(
1227 kernel, handle_table.Get<Process>(CurrentProcess), size, perms, perms, addr); 1227 kernel, handle_table.Get<Process>(CurrentProcess), size, perms, perms, addr);
1228 1228