Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
900 stars 204 forks source link

Non-deterministic deadlock in components UI when creating folder from selection #4381

Closed alexrp closed 9 months ago

alexrp commented 1 year ago

Version and Platform (required):

Bug Description:

[0x0]   ntdll!NtWaitForAlertByThreadId + 0x14   
[0x1]   ntdll!RtlAcquireSRWLockExclusive + 0x186   
[0x2]   MSVCP140!mtx_do_lock + 0xa5   
[0x3]   binaryninjaui!ComponentTreeView::currentSelectionChanged + 0x1c78   
[0x4]   binaryninjaui!ComponentTreeView::scrollContentsBy + 0x6e   
[0x5]   Qt6Widgets!QAbstractScrollArea::qt_static_metacall + 0xb7   
[0x6]   Qt6Core!QObject::qt_static_metacall + 0x19bb   
[0x7]   Qt6Core!QMetaObject::activate + 0x84   
[0x8]   Qt6Widgets!QAbstractSlider::setValue + 0x124   
[0x9]   Qt6Widgets!QAbstractSlider::repeatAction + 0x23f   
[0xa]   Qt6Widgets!QScrollBar::wheelEvent + 0x81   
[0xb]   Qt6Widgets!QWidget::event + 0x19a   
[0xc]   Qt6Widgets!QApplicationPrivate::notify_helper + 0x10e   
[0xd]   Qt6Widgets!QApplication::notify + 0x171a   
[0xe]   Qt6Core!QCoreApplication::notifyInternal2 + 0xc5   
[0xf]   Qt6Widgets!QWidget::event + 0x19a   
[0x10]   Qt6Widgets!QFrame::event + 0x33   
[0x11]   Qt6Widgets!QAbstractItemView::viewportEvent + 0x3ab   
[0x12]   Qt6Core!QCoreApplicationPrivate::sendThroughObjectEventFilters + 0xd7   
[0x13]   Qt6Widgets!QApplicationPrivate::notify_helper + 0xf3   
[0x14]   Qt6Widgets!QApplication::notify + 0xc7b   
[0x15]   Qt6Core!QCoreApplication::notifyInternal2 + 0xc5   
[0x16]   Qt6Widgets!QWidgetRepaintManager::updateStaticContentsSize + 0x4070   
[0x17]   Qt6Widgets!QWidgetRepaintManager::updateStaticContentsSize + 0xcdd   
[0x18]   Qt6Widgets!QApplicationPrivate::notify_helper + 0x10e   
[0x19]   Qt6Widgets!QApplication::notify + 0x171a   
[0x1a]   Qt6Core!QCoreApplication::notifyInternal2 + 0xc5   
[0x1b]   Qt6Gui!QGuiApplicationPrivate::processWheelEvent + 0x16e   
[0x1c]   Qt6Gui!QWindowSystemInterface::sendWindowSystemEvents + 0xe8   
[0x1d]   Qt6Core!QEventDispatcherWin32::processEvents + 0x90   
[0x1e]   Qt6Gui!QWindowsGuiEventDispatcher::processEvents + 0x19   
[0x1f]   Qt6Core!QEventLoop::exec + 0x1c4   
[0x20]   Qt6Core!QCoreApplication::exec + 0x15d   
[0x21]   binaryninja + 0x48ef5   
[0x22]   binaryninja + 0x26e768   
[0x23]   KERNEL32!BaseThreadInitThunk + 0x21   
[0x24]   ntdll!RtlUserThreadStart + 0x21   

Steps To Reproduce:

  1. Open this BNDB.
  2. Search for S1Type:: in symbols.
  3. Select all resulting symbols.
  4. Create a folder from the selection.

Note: It doesn't reproduce consistently. 🙁

bpotchik commented 9 months ago

Fixed in 3.6.4660-dev.