From 7e0a1c37d3645c70c794ca035f9cf473b46f1555 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 4 Jun 2017 19:42:26 -0400 Subject: [PATCH] cache: fix trackloader sometmies producing corrupt midis OutputStream is free to internally resize its bytebuffer. Remove byte[] constructor to prevent misuse again. --- .../net/runelite/cache/definitions/loaders/TrackLoader.java | 4 ++-- cache/src/main/java/net/runelite/cache/io/OutputStream.java | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/TrackLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/TrackLoader.java index 2496ccff05..7de437baf5 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/TrackLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/TrackLoader.java @@ -246,8 +246,7 @@ public class TrackLoader var1.skip(var25); int var50 = var1.getOffset(); var1.skip(tempoOpcodes * 3); - def.midi = new byte[offset]; - OutputStream var51 = new OutputStream(def.midi); + OutputStream var51 = new OutputStream(offset); var51.writeInt(1297377380); // MThd header var51.writeInt(6); // length of header var51.writeShort(tracks > 1 ? 1 : 0); // format @@ -457,5 +456,6 @@ public class TrackLoader } } + def.midi = var51.flip(); } } diff --git a/cache/src/main/java/net/runelite/cache/io/OutputStream.java b/cache/src/main/java/net/runelite/cache/io/OutputStream.java index 4460be7925..fe136c4d30 100644 --- a/cache/src/main/java/net/runelite/cache/io/OutputStream.java +++ b/cache/src/main/java/net/runelite/cache/io/OutputStream.java @@ -41,11 +41,6 @@ public final class OutputStream extends java.io.OutputStream this(16); } - public OutputStream(byte[] b) - { - buffer = ByteBuffer.wrap(b); - } - public byte[] getArray() { assert buffer.hasArray();