Skip to content

Crash due to null dereference below WarpFunctionInfoWidget::UpdateInfo #8211

@sentry

Description

@sentry

Sentry Issue: BINARYNINJA-91

EXCEPTION_ACCESS_VIOLATION_READ / 0xd0: Fatal Error: EXCEPTION_ACCESS_VIOLATION_READ / 0xd0
  File "qabstractitemmodel.cpp", line 3410, in QAbstractItemModel::beginResetModel
  File "qstandarditemmodel.cpp", line 2267, in QStandardItemModel::clear
  File "function.cpp", line 352, in WarpFunctionInfoWidget::UpdateInfo
  File "sync.rs", line 2685, in alloc::sync::impl$38::drop
  File "mod.rs", line 804, in core::ptr::drop_in_place
...
(30 additional frame(s) were not displayed)

@bdash says:

The stack trace is not reliable beyond the bottom few frames.

One thing I noticed while looking at this code is that both of the two ExecuteOnMainThread calls inside event handlers registered by WarpSidebarWidget appear to be unsafe. They assume this is still valid, but the widget can be destroyed between the event handler running and the lambda passed to ExecuteOnMainThread running. I'm not sure that issue would result in this particular crash though. They seem like they'd crash sooner since the WarpCurrentFunctionWidget and WarpFunctionInfoWidget would likely also have been destroyed.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions