diff options
author | Dave Brolley <brolley@redhat.com> | 2009-11-03 16:22:36 -0500 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-11-03 16:22:36 -0500 |
commit | 899b66209b0146560f0efc33efe58a4be3577df3 (patch) | |
tree | 7b64764b917c359a99d0adcf6c68a2d73cd52be7 /dwflpp.cxx | |
parent | d4ad7984018ff769cbb662342be7e501632c0bea (diff) | |
parent | 89651893a8ec51ee4d77ddfd57019e350ad7b169 (diff) | |
download | systemtap-steved-899b66209b0146560f0efc33efe58a4be3577df3.tar.gz systemtap-steved-899b66209b0146560f0efc33efe58a4be3577df3.tar.xz systemtap-steved-899b66209b0146560f0efc33efe58a4be3577df3.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Conflicts:
Makefile.in
configure
doc/Makefile.in
doc/SystemTap_Tapset_Reference/Makefile.in
grapher/Makefile.in
testsuite/configure
Diffstat (limited to 'dwflpp.cxx')
-rw-r--r-- | dwflpp.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -2182,8 +2182,15 @@ dwflpp::express_as_string (string prelude, fprintf(memstream, "{\n"); fprintf(memstream, "%s", prelude.c_str()); + unsigned int stack_depth; bool deref = c_emit_location (memstream, head, 1, &stack_depth); + + // Ensure that DWARF keeps loc2c to a "reasonable" stack size + // 32 intptr_t leads to max 256 bytes on the stack + if (stack_depth > 32) + throw semantic_error("oversized DWARF stack"); + fprintf(memstream, "%s", postlude.c_str()); fprintf(memstream, " goto out;\n"); |