DynamoRIO / DynamoRIO/dynamorio

ASSERT dispatch.c:755 get_syscall_method() == SYSCALL_METHOD_SYSENTER

Open
#3,020 0 comments 0 reactions 0 assignees View on GitHub
Bug-Assert OpSys-Linux
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

Running an app with DR statically linked and using dr_app_start/dr_app_stop_and_cleanup I sometimes see this assert:

```

```

Getting the callstack of the rank order:
```
0x555557ae8eec : add $0x10,%rsp
0x555557b8117b : xor %eax,%eax
0x555557ad914f : mov %rax,-0x40(%rbp)
0x555557ad99c2 : mov -0x28(%rbp),%rax
0x555557acded7 :
lea 0x280d25a(%rip),%rax # 0x55555a2db138
0x555557ac62a3 : cmp $0x0,%al
0x555557bbbb93 : mov $0xf,%eax
0x555557aa0dc3 : add $0x20,%rsp
0x555557a87076 :
lea 0x28540bb(%rip),%rdx # 0x55555a2db138
0x555557a875bc : cmp $0x0,%al
0x555557aae715 : mov %al,-0x12(%rbp)
0x555557ab3875 : cmp $0x0,%al
0x555557aa1fd2 : movsbl %al,%r8d
0x555557aa20e8 : mov %al,-0x1(%rbp)
0x555557ae29de : movsbl %al,%edx
0x555557ae1fc9 : callq 0x555557b749d0
0x5555578177b4 :
jmpq 0x5555578177be
0x5555578162b9 :
lea 0x2c46a60(%rip),%rax # 0x55555a45cd20
0x55553558bf05: Cannot access memory at address 0x55553558bf05
0x555557665628
```

So it's reporting the assert above:
```
ASSERT(get_syscall_method() == SYSCALL_METHOD_SYSENTER);
```

Getting the wherewasi value:
```

wherewasi=2 last-tag=0x0000000000000000

```

2==DR_WHERE_DISPATCH

Some have non-NULL last_fragment->tag but it's just some app bb ending in
cbr: nothing unusual.

So the issue is, how did it get to dispatch from dispatch?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.