Skip to content

Pointer sweep can remove existing data variables when defining string variables #8345

Description

@bdash

Version and Platform (required):

  • Binary Ninja Version: 5.4.10147-dev Ultimate, 9c231a95
  • OS: macos
  • OS Version: 26.5.2
  • CPU Architecture: arm64

Bug Description:
When pointer sweep finds a data word whose value points at a recognized string, it defines a string data variable at the target without checking whether a data variable already exists there. Since Analysis::DefineDataVariable erases overlapping auto data variables, this can result in a typed data variable created earlier (e.g. a header struct defined by a binary view during init) being silently removed.

Reported by a user on Slack.

The reproduction steps provided require a custom binary view plug-in.

Metadata

Metadata

Assignees

Labels

Component: CoreIssue needs changes to the coreEffort: TrivialIssues require < 1 day of work

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions