Skip to content

DWARF Export of Specific BNDB Causes Crash #7646

Description

@abombay

Version and Platform:

  • Binary Ninja Version: 5.2.8614
  • Edition: Personal, Non-Commercial
  • OS: macOS, Linux
  • OS Version: 14.2.1 (macOS), 24.04.3
  • CPU Architecture: M1 (macOS), x86-64 (Linux)

Bug Description:
I annotated a file I was working on with symbols/types and then attempted to export as DWARF. Binary Ninja crashed with no message other than the system crash reporter. I attempted it with a simpler file and it worked without issue. I tried the suspect BNDB on linux and it crashed the same way. I have uploaded the file and included both the system crash log and stderr log.

Steps To Reproduce:

  1. Open attached BNDB and then select "Export as DWARF" from the plugins menu
  2. Select output file and architecture "X86_64", then click ok.
  3. Binary Ninja crashes

Expected Behavior:
Binary Ninja should export the correct file.

Binary:
Uploaded to https://portal.binary.ninja/upload "hexagonal frost exists proficiently"

macOS Backtrace:

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	       0x18992e0dc __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x189965cc0 pthread_kill + 288
2   libsystem_c.dylib             	       0x189871a40 abort + 180
3   libdwarf_export.dylib         	       0x10e717354 0x10e6c0000 + 357204
4   libdwarf_export.dylib         	       0x10e720a18 0x10e6c0000 + 395800
5   libdwarf_export.dylib         	       0x10e6da154 0x10e6c0000 + 106836
6   libbinaryninjaui.1.dylib      	       0x105395734 0x105314000 + 530228
7   libbinaryninjaui.1.dylib      	       0x1053558e8 UIActionHandler::executeAction(QString const&, UIActionContext const&) + 320
8   libbinaryninjaui.1.dylib      	       0x10539c408 0x105314000 + 558088
9   QtCore                        	       0x104d194b0 void doActivate<false>(QObject*, int, void**) + 1404
10  QtGui                         	       0x1067b85c0 QAction::activate(QAction::ActionEvent) + 376
11  QtCore                        	       0x104d116a0 QObject::event(QEvent*) + 324
12  QtWidgets                     	       0x105d50234 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 336
13  QtWidgets                     	       0x105d5122c QApplication::notify(QObject*, QEvent*) + 460
14  QtCore                        	       0x104ccb3b4 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 188
15  QtCore                        	       0x104ccc4ec QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 524
16  libqcocoa.dylib               	       0x103d168a4 QCocoaEventDispatcherPrivate::processPostedEvents() + 380
17  libqcocoa.dylib               	       0x103d17b18 QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 492
18  CoreFoundation                	       0x189a43a4c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
19  CoreFoundation                	       0x189a439e0 __CFRunLoopDoSource0 + 176
20  CoreFoundation                	       0x189a43750 __CFRunLoopDoSources0 + 244
21  CoreFoundation                	       0x189a42340 __CFRunLoopRun + 828
22  CoreFoundation                	       0x189a419ac CFRunLoopRunSpecific + 608
23  HIToolbox                     	       0x193ff0448 RunCurrentEventLoopInMode + 292
24  HIToolbox                     	       0x193ff00d8 ReceiveNextEventCommon + 220
25  HIToolbox                     	       0x193feffdc _BlockUntilNextEventMatchingListInModeWithFilter + 76
26  AppKit                        	       0x18d21e8a4 _DPSNextEvent + 660
27  AppKit                        	       0x18d9f8980 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716
28  AppKit                        	       0x18d211d50 -[NSApplication run] + 476
29  libqcocoa.dylib               	       0x103d15394 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2120
30  QtCore                        	       0x104cd432c QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 592
31  QtCore                        	       0x104ccbbe4 QCoreApplication::exec() + 216
32  binaryninja                   	       0x1026f76b0 0x102638000 + 784048
33  libbinaryninjaui.1.dylib      	       0x105813d84 main_bn_5_2_8614_Personal_66bd5453_ + 12
34  dyld                          	       0x1895e50e0 start + 2360

stderr log:

thread '<unnamed>' panicked at plugins/dwarf/dwarf_export/src/lib.rs:128:47:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0:        0x10e714cbc - _CorePluginInit
   1:        0x10e6c7b00 - _UIPluginABIVersion
   2:        0x10e7130e8 - _CorePluginInit
   3:        0x10e714b7c - _CorePluginInit
   4:        0x10e7157d0 - _CorePluginInit
   5:        0x10e71564c - _CorePluginInit
   6:        0x10e715f74 - _CorePluginInit
   7:        0x10e715c04 - _CorePluginInit
   8:        0x10e715164 - _CorePluginInit
   9:        0x10e7158f0 - _CorePluginInit
  10:        0x10e71e6f4 - _CorePluginInit
  11:        0x10e71e764 - _CorePluginInit
  12:        0x10e71e68c - _CorePluginInit
  13:        0x10e6cf440 - _UIPluginABIVersion
  14:        0x10e6d0400 - _UIPluginABIVersion
  15:        0x10e6da098 - _CorePluginInit
  16:        0x105395734 - __ZN16MainMenuInstance6updateEP15UIActionHandlerRK15UIActionContext
  17:        0x1053558e8 - __ZN15UIActionHandler13executeActionERK7QStringRK15UIActionContext
  18:        0x10539c408 - __ZN16MainMenuInstance6updateEP15UIActionHandlerRK15UIActionContext
  19:        0x104d194b0 - __Z10doActivateILb0EEvP7QObjectiPPv
[0:0 DWARF Export error] ffi callback caught panic: Command::action

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions