MidiHub Editor aborts on export

Using the latest MH Editor 1.11.1.AppImage on Fedora 32:

  1. start editor
  2. device -> connect
  3. device -> export everything -> enter (or whatever filename)

-> aborts with message “*** buffer overflow detected ***: terminated” 100% reliably for me. Here’s what gdb has to say about it:

Thread 1 “midihub-editor” received signal SIGABRT, Aborted.
0x00007f81946a7a25 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f81946a7a25 in raise () from /lib64/libc.so.6
#1 0x00007f8194690895 in abort () from /lib64/libc.so.6
#2 0x00007f81946eb8c7 in __libc_message () from /lib64/libc.so.6
#3 0x00007f819477c7ea in __fortify_fail () from /lib64/libc.so.6
#4 0x00007f819477b076 in __chk_fail () from /lib64/libc.so.6
#5 0x000000000042aa0e in midihub_editor::writeDump(QIODevice&, MidihubDump const&) const ()
#6 0x000000000042e6b1 in midihub_editor::exportAll() ()
#7 0x00007f8194e43e39 in QMetaObject::activate(QObject*, int, int, void**) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Core.so.5
#8 0x00007f81957b9022 in QAction::triggered(bool) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#9 0x00007f81957bb990 in QAction::activate(QAction::ActionEvent) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#10 0x00007f819592848a in ?? ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#11 0x00007f819592fa76 in ?? ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#12 0x00007f81959308f0 in QMenu::mouseReleaseEvent(QMouseEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#13 0x00007f8195806768 in QWidget::event(QEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#14 0x00007f8195932c73 in QMenu::event(QEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#15 0x00007f81957bf99c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#16 0x00007f81957c7c35 in QApplication::notify(QObject*, QEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#17 0x0000000000420968 in EditorApp::notify(QObject*, QEvent*) ()
#18 0x00007f8194e19078 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Core.so.5
#19 0x00007f81957c695f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEv–Type for more, q to quit, c to continue without paging–
ent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#20 0x00007f8195820e76 in ?? ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#21 0x00007f81958234b3 in ?? ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#22 0x00007f81957bf99c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#23 0x00007f81957c7396 in QApplication::notify(QObject*, QEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Widgets.so.5
#24 0x0000000000420968 in EditorApp::notify(QObject*, QEvent*) ()
#25 0x00007f8194e19078 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Core.so.5
#26 0x00007f819523f8f0 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Gui.so.5
#27 0x00007f81952417f5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Gui.so.5
#28 0x00007f819521f67b in QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Gui.so.5
#29 0x00007f8191444260 in ?? ()
from /tmp/.mount_MidihuCebx0Q/usr/plugins/platforms/…/…/lib/libQt5XcbQpa.so.5
#30 0x00007f81936e47cf in g_main_context_dispatch ()
from /lib64/libglib-2.0.so.0
#31 0x00007f81936e4b58 in g_main_context_iterate.constprop ()
from /lib64/libglib-2.0.so.0
#32 0x00007f81936e4c23 in g_main_context_iteration ()
from /lib64/libglib-2.0.so.0
#33 0x00007f8194e6a90f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop:–Type for more, q to quit, c to continue without paging–
:ProcessEventsFlag>) ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Core.so.5
#34 0x00007f8194e1706a in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Core.so.5
#35 0x00007f8194e1f67c in QCoreApplication::exec() ()
from /tmp/.mount_MidihuCebx0Q/usr/bin/…/lib/libQt5Core.so.5
#36 0x000000000041ffce in main ()
(gdb)

FWIW, just fooling around with “lets see what that button does”, wasn’t really trying to achieve anything particular.

Thank you, I’ll look into it.

Small update - I was not able to reproduce the crash on any of Ubuntu versions I have around, so I installed a Fedora32 x86_64 image to a VM and I could reproduce the issue. I’ll get a fix out, most likely tomorrow. :slight_smile:

1 Like

Cool :slight_smile:
From my behalf, absolutely no rush or need for an update just for that though, like said it was just something I stumbled on.

Ok, got it fixed, the build version will still be the same, get the fixed version here: https://blokas.io/midihub/downloads/MidihubEditor_1.11.1.AppImage

Confirmed, kudos for the quick fix. :+1:

Please consider that versioning policy though - if content changes then version and file name should change too, no matter how small a change. Getting different content from the same versioned link at different times gets mighty confusing for users and developers alike, plus it arouses security concerns too.

1 Like

Sure, it makes sense.