Skip to content

Commit 113d359

Browse files
committed
MIDI: Check for minimum filessize of a valid MIDI header
1 parent edafafd commit 113d359

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

getid3/module.audio.midi.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ public function Analyze() {
4646

4747
$this->fseek($info['avdataoffset']);
4848
$MIDIdata = $this->fread($this->getid3->fread_buffer_size());
49+
50+
$minHeaderSize = 14; // MIDI header (4+4+2+2+2)
51+
$minTrackHeaderSize = 8; // Track header (4+4)
52+
$minTotalSize = $minHeaderSize + $minTrackHeaderSize;
53+
if ($info['filesize'] < $minTotalSize || strlen($MIDIdata) < $minTotalSize) {
54+
$this->error('File too small to be a valid MIDI file.');
55+
return false;
56+
}
57+
4958
$offset = 0;
5059
$MIDIheaderID = substr($MIDIdata, $offset, 4); // 'MThd'
5160
if ($MIDIheaderID != GETID3_MIDI_MAGIC_MTHD) {

0 commit comments

Comments
 (0)