]> git.ipfire.org Git - thirdparty/elfutils.git/commit
Detect infinite backtraces. jankratochvil/cfaloop
authorJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 3 Jan 2014 21:06:12 +0000 (22:06 +0100)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 3 Jan 2014 21:06:36 +0000 (22:06 +0100)
commit305705207e0831e6387706065e59f91296ba0d0a
treeed834da7297a96dc1faf31eadabb7352df57f2fb
parenta6141d27691a68a4af5eb48ab10d27e74d3c2a6b
Detect infinite backtraces.

libdwfl/
2014-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

Detect infinite backtraces.
* dwfl_frame.c (state_alloc): Initialize CFA.
* frame_unwind.c (expr_eval): Remove parameter frame, add parameter
elfclass.  Move elfclass to handle_cfi.  Replace recursive call by
state->unwound->CFA.
(new_unwound): Initialize CFA.
(handle_cfi): Move elfclass here.  Compute CFA.  Update expr_eval
caller parameters.
* libdwflP.h (DWFL_ERRORS): Add UNWIND_BAD_CFA.
(struct Dwfl_Frame): Add field cfa.

tests/
2014-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

* Makefile.am (TESTS): Add run-cfaloop.sh.
(EXTRA_DIST): Add run-cfaloop.sh, testfilecfaloop.S,
testfilecfaloop.bz2, testfilecfaloop.c and testfilecfaloop.core.bz2.
* run-cfaloop.sh: New file.
* testfilecfaloop.S: New file.
* testfilecfaloop.bz2: New file.
* testfilecfaloop.c: New file.
* testfilecfaloop.core.bz2: New file.

Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
libdwfl/dwfl_frame.c
libdwfl/frame_unwind.c
libdwfl/libdwflP.h
tests/Makefile.am
tests/run-cfaloop.sh [new file with mode: 0755]
tests/testfilecfaloop.S [new file with mode: 0644]
tests/testfilecfaloop.bz2 [new file with mode: 0644]
tests/testfilecfaloop.c [new file with mode: 0644]
tests/testfilecfaloop.core.bz2 [new file with mode: 0644]