summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormailwl <mailwl@gmail.com>2018-06-22 11:18:23 +0300
committermailwl <mailwl@gmail.com>2018-06-22 11:28:10 +0300
commita27befe456b8c9cb95bd922ea9a2613cfb473009 (patch)
treef50f9bdd0eec1b8a0692b283ce31b2c55c6209fe
parentb7162c32a444232d578d58521caf164e0d112ff8 (diff)
IPC: skip empty buffer write
prevent yuzu crash, if games, like Axiom Verge, trying to read 0 bytes from file
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index 01904467e..b0d83f401 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -271,6 +271,11 @@ std::vector<u8> HLERequestContext::ReadBuffer(int buffer_index) const {
}
size_t HLERequestContext::WriteBuffer(const void* buffer, size_t size, int buffer_index) const {
+ if (size == 0) {
+ NGLOG_WARNING(Core, "skip empty buffer write");
+ return 0;
+ }
+
const bool is_buffer_b{BufferDescriptorB().size() && BufferDescriptorB()[buffer_index].Size()};
const size_t buffer_size{GetWriteBufferSize(buffer_index)};
if (size > buffer_size) {