Ticket #42795

iOS版 データサイズゼロのシステムエクスクルーシブ送信でクラッシュする

Eröffnet am: 2021-09-05 23:28 Letztes Update: 2021-09-07 22:18

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine

Details

TBMEDLEY.MID(タイムボカンメドレー)を演奏すると、4分25秒経過時点で必ずアプリが強制終了する。

Ticket-Verlauf (3/6 Historien)

2021-09-05 23:28 Aktualisiert von: yknk
  • New Ticket "データサイズゼロのシステムエクスクルーシブ送信で落ちる" created
2021-09-05 23:33 Aktualisiert von: yknk
Kommentar

原因

iOS14対応で、Universal MIDI PacketによるMIDIデータ送信処理を実装した際に作り込んだ不具合。

  • #41978 iOS版 iOS 14対応(Core MIDI 新API対応)

当該MIDIデータに、先頭と末尾のみのシステムエクスクルーシブデータ(F0 F7)が含まれていた。 本来であれば先頭F0と末尾F7の間にMIDI音源に送信するデータを挟むはずであるが、それが存在していなかった。

MIDIデータ送信処理(SMOutDevCtrl::_SendLongMsg2)でUniversal MIDI Packetを組み立てる時、 システムエクスクルーシブデータは先頭F0と末尾F7を取り除くため、パケットに登録するデータのサイズはゼロになる。 ワード数にゼロを指定してMIDIEventListAddを呼び出したところで落ちていた。

本事象の発生条件は、iOS14以降かつMIDITrail for iOS Ver.1.3.3以降。

2021-09-05 23:34 Aktualisiert von: yknk
Kommentar

対策

MIDIデータ送信処理(SMOutDevCtrl::_SendLongMsg2)で、Universal MIDI Packetに登録する システムエクスクルーシブデータ(先頭F0と末尾F7を除く)のサイズがゼロの場合は、MIDIデータ送信処理をスキップする。

2021-09-05 23:35 Aktualisiert von: yknk
  • Summary Updated
2021-09-05 23:40 Aktualisiert von: yknk
  • Summary Updated
2021-09-07 22:18 Aktualisiert von: yknk
  • Status Update from Offen to Geschlossen
  • Lösung Update from Keine to Gefixt

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden