rizinorg/rz-hexagon

Function argument passing incorrect.

Rot127 opened this issue · 0 comments

This seems to only happen if the function signature is added with afs.

  • If a signature is added to an analyzed function, it falsely claims that the arguments are all given via the stack. Although they should be passed by register.
  • The stack arguments are all only 1byte in size. Although they should be at least 4.

Example:

void sym.function (void *arg0, char *arg1);                                                                                                     │ 0x00006f10    9 104          sym._Locksyslock                                │
│            ; arg void *arg0 @ R30+0x00x00006e10    3 96           sym._Initlocks                                  │
│            ; arg char *arg1 @ R30+0x1