-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
Bug Summary
JackMidi causes invalid and uninitialized reads
Steps to reproduce
Enable JackMidi, restart LMMS.
When enabled: Open LMMS. Close LMMS.
Expected behavior
No memory errors.
Actual behavior
Invalid and uninitialized reads. Sometimes, this leads to crashes.
LMMS version used
master: eebdc0f
Logs
Click to expand
Startup
==21784== Thread 11: ==21784== Conditional jump or move depends on uninitialised value(s) ==21784== at 0x3AAD4D: MidiJack::JackMidiRead(unsigned int) (MidiJack.cpp:180) ==21784== by 0x3884C3: AudioJack::processCallback(unsigned int, void*) (AudioJack.cpp:347) ==21784== by 0x3887D3: AudioJack::staticProcessCallback(unsigned int, void*) (AudioJack.cpp:429) ==21784== by 0x712C2A9: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x712BA07: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x7144B1C: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x489F4CE: start_thread (in /usr/lib/libpthread-2.30.so) ==21784== by 0x70432D2: clone (in /usr/lib/libc-2.30.so) ==21784== ==21784== Conditional jump or move depends on uninitialised value(s) ==21784== at 0x38856E: AudioJack::processCallback(unsigned int, void*) (AudioJack.cpp:382) ==21784== by 0x3887D3: AudioJack::staticProcessCallback(unsigned int, void*) (AudioJack.cpp:429) ==21784== by 0x712C2A9: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x712BA07: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x7144B1C: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x489F4CE: start_thread (in /usr/lib/libpthread-2.30.so) ==21784== by 0x70432D2: clone (in /usr/lib/libc-2.30.so)
When closing:
==21784== Thread 11: ==21784== Invalid read of size 8 ==21784== at 0x3AACF2: MidiJack::JackMidiRead(unsigned int) (MidiJack.cpp:172) ==21784== by 0x3884C3: AudioJack::processCallback(unsigned int, void*) (AudioJack.cpp:347) ==21784== by 0x3887D3: AudioJack::staticProcessCallback(unsigned int, void*) (AudioJack.cpp:429) ==21784== by 0x712C2A9: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x712BA07: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x7144B1C: ??? (in /usr/lib/libjack.so.0.1.0) ==21784== by 0x489F4CE: start_thread (in /usr/lib/libpthread-2.30.so) ==21784== by 0x70432D2: clone (in /usr/lib/libc-2.30.so) ==21784== Address 0xa277770 is 160 bytes inside a block of size 440 free'd ==21784== at 0x4839EAB: operator delete(void*) (vg_replace_malloc.c:586) ==21784== by 0x3AAB1F: MidiJack::~MidiJack() (MidiJack.cpp:145) ==21784== by 0x32EB69: Mixer::~Mixer() (Mixer.cpp:189) ==21784== by 0x32ED23: Mixer::~Mixer() (Mixer.cpp:201) ==21784== by 0x3057C3: void LmmsCore::deleteHelper<Mixer>(Mixer**) (Engine.h:141) ==21784== by 0x3050D4: LmmsCore::destroy() (Engine.cpp:104) ==21784== by 0x3DDF7C: MainWindow::~MainWindow() (MainWindow.cpp:260) ==21784== by 0x3DDFF1: MainWindow::~MainWindow() (MainWindow.cpp:261) ==21784== by 0x6AD9FFF: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.14.1) ==21784== by 0x4A57488: QWidget::event(QEvent*) (in /usr/lib/libQt5Widgets.so.5.14.1) ==21784== by 0x4B71574: QMainWindow::event(QEvent*) (in /usr/lib/libQt5Widgets.so.5.14.1) ==21784== by 0x4A13361: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.14.1) ==21784== Block was alloc'd at ==21784== at 0x4838DEF: operator new(unsigned long) (vg_replace_malloc.c:344) ==21784== by 0x331C8B: Mixer::tryMidiClients() (Mixer.cpp:1149) ==21784== by 0x32EE47: Mixer::initDevices() (Mixer.cpp:216) ==21784== by 0x304EA2: LmmsCore::init(bool) (Engine.cpp:79) ==21784== by 0x3D2B3B: GuiApplication::GuiApplication() (GuiApplication.cpp:115) ==21784== by 0x2A400A: main (main.cpp:815)