a28476c5d26dc8a4b617dbe70608a26e49fc9345 |
|
11-Jan-2016 |
Christopher Ferris <cferris@google.com> |
Fix bug where a failure becomes success on x86. In libunwind, the unw_step function on x86, an error can get changed into a success. This meant illegal frames were added that didn't really exist. Even worse, this could cause crashes because these completely garbage ip addresses were used to try and get another stack frame. This lead to attempts to access illegal data, and if you get unlucky and the map for the bad data was valid at one point, and invalid at the point of unwind, you get a crash. There is a small similar possibility of a stop unwind becoming a continue on aarch64. Bug: 26248094 (cherry picked from commit c60f22c30ebf16ee4ab990994535f972f349e00e) Change-Id: I9ef0364d0494791c4866fa82af4ca8930c452bd0
/external/libunwind/src/aarch64/Gstep.c
|
2706ca232c0966b508003043f6a327ac8461e920 |
|
09-May-2015 |
Christopher Ferris <cferris@google.com> |
Add check for same ip/cfa. Make sure that all of our supported architectures stop when the ip/cfa does not change. Bug: 20955299 Change-Id: Ic023c71439208ee5ef21efa0298ab7ed1ad03c00
/external/libunwind/src/aarch64/Gstep.c
|
4868ff1ab2b82a52a1abb48bcf6dcbf795d3c4db |
|
27-Oct-2014 |
Christopher Ferris <cferris@google.com> |
Fix aarch64 handling of error code. In the is_signal_frame call, there is an error return path that can return a non-zero value. Unfortunately, only zero is considered an error, so this causes the frame to be handled incorrectly. Once this was fixed, I also modified the code so that if the treating the unwind as in a signal frame fails, we can fall back and try a couple of different paths. It turns out this is_signal_frame check was broken on arm too. Bug: 18100846 (cherry picked from commit 23c6aa9a54d0a220fb2557197c555b2684c93876) Change-Id: I0ec1fac82ee76dec447fdccdae4207dd1b8ccf6d
/external/libunwind/src/aarch64/Gstep.c
|
60c0e104182996ce3739e3377d1f8f3f706853ca |
|
09-Jun-2014 |
Christopher Ferris <cferris@google.com> |
Fix ip adjust on aarch64. I didn't add the ip adjust when aarch64 support was added. This meant that the ip pointed to the wrong instruction when doing unwinds. Change-Id: Ie60322b1bd0f4dae95852cc93d163b850595b0b5
/external/libunwind/src/aarch64/Gstep.c
|
ac6c0a6535975f1dc2da6e4e2766614baac2a14a |
|
11-May-2013 |
Yvan Roux <yvan.roux@linaro.org> |
[PATCH] AArch64 port.
/external/libunwind/src/aarch64/Gstep.c
|