RFR: 8319315: Sending a SysexMessage starting with 0xF7 leads to JVM crash
Alec Su
duke at openjdk.org
Fri Nov 3 00:27:11 UTC 2023
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
More information about the client-libs-dev
mailing list