The bug on Windows doesn't generate any error messages. During the testcase 
run, every "Open MIDI port" message should be followed by an "All SysexMessage 
sent" message. Alternatively, you can check `%ERRORLEVEL%` to determine if 
there's an error when JVM exits.

On Linux, there are no software MIDI devices provided by default. To reproduce 
this bug on Linux, you need to connect a real MIDI device to Linux or create a 
virtual MIDI device by running the command `sudo modprobe snd_virmidi 
midi_devs=1`.

The bug occurred because a pointer was increased on Line 137, then it attempted 
to release the modified pointer on Line 143.

https://github.com/openjdk/jdk/blob/e9d19d0fffc47119d0d4f756833ec87cd0a6331e/src/java.desktop/share/native/libjsound/MidiOutDevice.c#L128-L144

To fix this, I added a variable `msg` to store the modified pointer to prevent 
`data` pointer being modified.

-------------

Commit messages:
 - Fix crashes when sending a SysexMessage starting with 0xF7

Changes: https://git.openjdk.org/jdk/pull/16477/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16477&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8319315
  Stats: 19 lines in 2 files changed: 13 ins; 0 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/16477.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16477/head:pull/16477

PR: https://git.openjdk.org/jdk/pull/16477

Reply via email to