summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDr. Chat <arkolbed@gmail.com>2017-12-26 20:57:28 -0600
committerDr. Chat <arkolbed@gmail.com>2017-12-26 20:58:31 -0600
commitbfc8ecbeaa1ec1ee4fb69de8bf0277462298cbd4 (patch)
tree66e49f675da68be0fd59b8a37c1f13f5d4a89dea
parent8784daf6bc49eb279060043ad8e8336902b18520 (diff)
[XMA] Check for invalid packet number in ValidFrameOffset
-rw-r--r--src/xenia/apu/xma_context.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/xenia/apu/xma_context.cc b/src/xenia/apu/xma_context.cc
index f20aa4361..2fd40a928 100644
--- a/src/xenia/apu/xma_context.cc
+++ b/src/xenia/apu/xma_context.cc
@@ -225,6 +225,11 @@ bool XmaContext::ValidFrameOffset(uint8_t* block, size_t size_bytes,
size_t frame_offset_bits) {
uint32_t packet_num =
GetFramePacketNumber(block, size_bytes, frame_offset_bits);
+ if (packet_num == -1) {
+ // Invalid packet number
+ return false;
+ }
+
uint8_t* packet = block + (packet_num * kBytesPerPacket);
size_t relative_offset_bits = frame_offset_bits % (kBytesPerPacket * 8);