Skip to content

Add a bv.get_metadata(key, default=None) so we have a non-throwing api for querying metadata. #7875

@utkonos

Description

@utkonos

Version and Platform (required):

  • Binary Ninja Version: 5.3.8876-dev Ultimate, bed91080
  • OS: macos
  • OS Version: 26.2.0
  • CPU Architecture: arm64

Bug Description:
If you access metadata inside an is_valid callback function, and there are Sidekick indexes that have been created, there is noticeable UI lag. There is a number of indexes where the lag becomes a beachball. And there is a number where Binary Ninja crashes and must be force quit.

Steps To Reproduce:

  1. Create a local plugin file with the contents below.
  2. Open binary ninja
  3. Open a database
  4. Open a workbench script
  5. Make lots of indexes via workbench script
  6. Notice lag
  7. Make more indexes
  8. Notice beachball
  9. Start over
  10. Make even more indexes
  11. Notice you have to force quit.
from binaryninja.plugin import PluginCommand
PluginCommand.register('Fight Sidekick', 'Fight Sidekick', lambda x: True, lambda x: not x.metadata.get('fight'))

Expected Behavior:
No lag, no beachball, no crash.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions