summaryrefslogtreecommitdiffstats
path: root/lib/libcxx/src/filesystem/operations.cpp
diff options
context:
space:
mode:
authorvisa <visa@openbsd.org>2019-02-02 14:32:58 +0000
committervisa <visa@openbsd.org>2019-02-02 14:32:58 +0000
commitb4d942bd82e640e729b02b7ed1d9224ddd3c46d4 (patch)
tree16003c258d2e2e549fea0864287fd3574499df8e /lib/libcxx/src/filesystem/operations.cpp
parentAn extra test that is known to trigger problems with some versions of (diff)
downloadwireguard-openbsd-b4d942bd82e640e729b02b7ed1d9224ddd3c46d4.tar.xz
wireguard-openbsd-b4d942bd82e640e729b02b7ed1d9224ddd3c46d4.zip
Improve stack trace saving on amd64:
* 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. * Fix erroneous skipping of the second stack frame. OK mpi@
Diffstat (limited to 'lib/libcxx/src/filesystem/operations.cpp')
0 files changed, 0 insertions, 0 deletions