Skip to content

Incorrect list of basic blocks inside a function of libtiff compiled with clang O0 #26

@Colton1skees

Description

@Colton1skees

Using the serialized protobuf definitions from here, the list of basic blocks for function 0x1B380 of linux\libs\clang_O0\libtiff.so.5.4.0 are incorrect.

The ida pro ground truth(linux\libs\clang_O0\Block-idaBlocks-libtiff.so.5.4.0.pb) lists these blocks as children of 0x1B380:

  • 0x1B380
  • 0x1B3B2
  • 0x1B3BE
  • 0x1B3DC
  • 0x1B3E7
  • 0x1B3F2
  • 0x1B42E
  • 0x1B43B
  • 0x1B45C
  • 0x1B468
  • 0x1B479
  • 0x1B48B

The OracleGT ground truth(linux\libs\clang_O0\gtBlock_libtiff.so.5.4.0.pb) lists these blocks as children of 0x1B380:

  • 0x1B479
  • 0x1B48B
  • 0x1B4A0
  • 0x1B4C5
  • 0x1B4DD
  • 0x1B4F1
  • 0x1B517
  • 0x1B53D
  • 0x1B563
  • 0x1B589
  • 0x1B5AF
  • 0x1B5D5
  • 0x1B5FB
  • 0x1B61A

I cross referenced with both IDA & Binary Ninja, and the IDA pro ground truth is definitely correct - OracleGT is listing blocks which are not owned by 0x1B380. Is this a bug?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions