DynamoRIO / DynamoRIO/dynamorio

Signal tests failure in clang build due to stack misalignment

Open
#2,330 3 comments 0 reactions 0 assignees View on GitHub
Bug-AppCrash Bug-AppFail Component-Tests OpSys-Linux OpSys-x86
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

Project: DynamoRIO
Site: X64.Ubuntu1404.Clang37.CAM
Build Name: debug-internal-32
Build Time: 2017-04-05T18:00:22 MDT
Type: Nightly
Tests failing: 17

*Tests failing* (first 5)
code_api|linux.signal0011 (http://dynamorio.org/CDash/testDetails.php?test=236317&build=21285)
code_api|linux.signal0001 (http://dynamorio.org/CDash/testDetails.php?test=236318&build=21285)
code_api|linux.signal1001 (http://dynamorio.org/CDash/testDetails.php?test=236319&build=21285)
code_api|linux.signal0101 (http://dynamorio.org/CDash/testDetails.php?test=236320&build=21285)
code_api|linux.signal0111 (http://dynamorio.org/CDash/testDetails.php?test=236321&build=21285)

Trace test linux.signal0001
A segfault happens in a `memset` called from `set_actual_itimer`
```
(gdb) where
#0 set_actual_itimer (dcontext=0xef7d9bc0, which=1, info=0xef835128, enable=false) at DynamoRIO/nightly/src/core/unix/signal.c:6085
#1 0x56bd71b2 in itimer_new_settings (dcontext=0xef7d9bc0, which=1, app_changed=true) at DynamoRIO/nightly/src/core/unix/signal.c:6120
#2 0x56bd8149 in handle_pre_setitimer (dcontext=0xef7d9bc0, which=1, new_timer=0xffe58668, prev_timer=0x0) at DynamoRIO/nightly/src/core/unix/signal.c:6404
#3 0x56ba6445 in pre_system_call (dcontext=0xef7d9bc0) at DynamoRIO/nightly/src/core/unix/os.c:7214
#4 0x56806c82 in handle_system_call (dcontext=0xef7d9bc0) at DynamoRIO/nightly/src/core/dispatch.c:1986
#5 0x56803497 in dispatch_enter_dynamorio (dcontext=0xef7d9bc0) at DynamoRIO/nightly/src/core/dispatch.c:880
#6 0x568000a7 in dispatch (dcontext=0xef7d9bc0) at
DynamoRIO/nightly/src/core/dispatch.c:164
(gdb) x/2i $pc
=> 0x56bc1621 : movaps %xmm0,-0x38(%ebp)
0x56bc1625 : mov -0x14(%ebp),%eax
(gdb) p/x $ebp
$6 = 0xef832174
```
So it is clear a stack misalignment for `movaps` instruction.

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.