diff options
author | 2019-02-02 14:34:09 +0000 | |
---|---|---|
committer | 2019-02-02 14:34:09 +0000 | |
commit | 010f0b318512a5835f057e38c7005ad0e63579c5 (patch) | |
tree | e9877458768e44a5997d8615658ff3a90e163b7f /lib/libcxx/src/filesystem/operations.cpp | |
parent | Improve stack trace saving on amd64: (diff) | |
download | wireguard-openbsd-010f0b318512a5835f057e38c7005ad0e63579c5.tar.xz wireguard-openbsd-010f0b318512a5835f057e38c7005ad0e63579c5.zip |
Improve stack trace saving on i386:
* Replace unnecessary use of db_get_value() with direct access of
f_retaddr. The trace function assumes that the chain of frames
is good in terms of alignment and content.
* Replace the for loop with a while loop and drop the check
"frame != NULL" from the loop condition. The check is redundant with
the "!INKERNEL(frame)" condition. The code already assumes that the
initial frame is valid.
* Stop iteration if f_retaddr is a non-kernel address in order to
not save a user address at the end of the trace. This additionally
fixes a kernel crash that would happen if the user thread had
a broken frame pointer.
OK mpi@
Diffstat (limited to 'lib/libcxx/src/filesystem/operations.cpp')
0 files changed, 0 insertions, 0 deletions