-
Notifications
You must be signed in to change notification settings - Fork 245
Description
Version and Platform (required):
- Binary Ninja Version: All for a long time
- OS: Ubuntu (and others)
- OS Version: 22.04
- CPU Architecture: x64
Bug Description:
It seems in most if not all cases function calls in ARMv7 do not respect the type you set for them. This includes when you "override call type" at the call site as well as changing the target function type. For example, I'll set a function type to int sprintf(char *buf, const char *fmt, ...)
, and some call sites will stubbornly refuse to show anything other than sprintf()
with no parameters. This can be hard to see at first because binja's call-site parameter detection usually does a decent job on its own, but for anything else, especially variadic functions, it seems to be unfixable.
I've seen this both in Thumb and ARM mode, in regular Linux ELFs and baremetal firmware, and for a long time. Thought there was a report for this already, but I can't find it now.