diff options
| author | 2018-11-11 16:39:25 -0500 | |
|---|---|---|
| committer | 2018-11-18 10:53:47 -0500 | |
| commit | e696ed1f4d20f28f8b26c637498962938df7d96f (patch) | |
| tree | 79222d795725ba7b19f0aa9326041e236f9a22d8 /src/core/hle/kernel/svc.cpp | |
| parent | qt/main: Register Qt Software Keyboard frontend with AM (diff) | |
| download | yuzu-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.cpp | 8 |
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 | ||