From c42f66db2d92fe3f2b48ef843fe1e55aa17fb531 Mon Sep 17 00:00:00 2001 From: alcexhim Date: Mon, 9 Jun 2014 11:14:51 -0400 Subject: [PATCH] Sanity checking on MIDI data format --- .../Multimedia/Audio/Synthesized/MIDI/MIDIDataFormat.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/MIDI/MIDIDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/MIDI/MIDIDataFormat.cs index 4f4c0c3e..1b74eb3b 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/MIDI/MIDIDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/MIDI/MIDIDataFormat.cs @@ -19,6 +19,8 @@ namespace UniversalEditor.DataFormats.Multimedia.Audio.Synthesized.MIDI br.Endianness = Endianness.BigEndian; SynthesizedAudioObjectModel syn = objectModel as SynthesizedAudioObjectModel; string MThd = br.ReadFixedLengthString(4); + if (MThd != "MThd") throw new InvalidDataFormatException("File does not begin with \"MThd\""); + int headerSize = br.ReadInt32(); short fileFormat = br.ReadInt16(); short trackCount = br.ReadInt16(); @@ -26,6 +28,8 @@ namespace UniversalEditor.DataFormats.Multimedia.Audio.Synthesized.MIDI for (short i = 0; i < trackCount; i += 1) { string MTrk = br.ReadFixedLengthString(4); + if (MTrk != "MTrk") throw new InvalidDataFormatException("Could not read track " + (trackCount + 1).ToString() + " - does not begin with \"MTrk\""); + int trackLength = br.ReadInt32(); SynthesizedAudioTrack track = new SynthesizedAudioTrack(); long position = br.Accessor.Position;