From 4aaca8cbf3288e5334cfafccea9cbfe0d5875e7f Mon Sep 17 00:00:00 2001 From: gibbed Date: Wed, 22 Jun 2016 15:53:07 -0500 Subject: [PATCH] Fixed copying junk data into initialized XEX memory when XEX is unencrypted. --- src/xenia/kernel/util/xex2.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/xenia/kernel/util/xex2.cc b/src/xenia/kernel/util/xex2.cc index 823ec22f3..e2de74cf0 100644 --- a/src/xenia/kernel/util/xex2.cc +++ b/src/xenia/kernel/util/xex2.cc @@ -630,12 +630,11 @@ int xe_xex2_read_image_basic_compressed(const xe_xex2_header_t* header, switch (header->file_format_info.encryption_type) { case XEX_ENCRYPTION_NONE: - if (exe_length - (p - source_buffer) > - uncompressed_size - (d - buffer)) { + if (data_size > uncompressed_size - (d - buffer)) { // Overflow. return 1; } - memcpy(d, p, exe_length - (p - source_buffer)); + memcpy(d, p, data_size); break; case XEX_ENCRYPTION_NORMAL: { const uint8_t* ct = p;