Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overly aggressive code elimination removes condition #4128

Closed
ZetaTwo opened this issue Mar 21, 2023 · 1 comment
Closed

Overly aggressive code elimination removes condition #4128

ZetaTwo opened this issue Mar 21, 2023 · 1 comment
Milestone

Comments

@ZetaTwo
Copy link
Contributor

ZetaTwo commented Mar 21, 2023

Version and Platform (required):

  • Binary Ninja Version: 3.4.4161-dev (307b0cbe)
  • OS: Ubuntu Linux
  • OS Version: 22.04
  • CPU Architecture: x64

Bug Description:

Consider the four screenshots below from the same binary. The disassembly and LLIL is correct with six separate conditions on the argument (arg1 == "ABC123") but the MLIL, and therefore the HLIL only contain five conditions (arg1 == "ABC12").

Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

  1. Have function with the disassembly shown in the first screenshot
  2. View the HLIL

Expected Behavior:
I expect all six conditions to appear in the HLIL

Screenshots:

Correct disassembly:
image

Correct LLIL:
image

Incorrect MLIL:
image

Incorrect HLIL:
image

Additional Information
The binary is attached: binja-bug-dce.zip

@plafosse
Copy link
Member

plafosse commented May 8, 2023

Looks like this issues is fixed in latest dev
image

@plafosse plafosse closed this as completed May 8, 2023
@plafosse plafosse added this to the Coruscant milestone Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants