aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/hipe/hipe_mode_switch.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2014-02-20 14:34:41 +0100
committerSverker Eriksson <[email protected]>2014-02-25 15:27:15 +0100
commiteb53a3f0b7a7d6c4d0a877fe71bc0b0ca11d1597 (patch)
tree15984846b7c73235628a167220016d661bd524ff /erts/emulator/hipe/hipe_mode_switch.h
parent880239f529bbdefecc39cc179a24d9ea89c3736a (diff)
downloadotp-eb53a3f0b7a7d6c4d0a877fe71bc0b0ca11d1597.tar.gz
otp-eb53a3f0b7a7d6c4d0a877fe71bc0b0ca11d1597.tar.bz2
otp-eb53a3f0b7a7d6c4d0a877fe71bc0b0ca11d1597.zip
erts: Fix heap overwrite by hipe "trap frames" when GC is disabled
by trapping BIFs like term_to_binary and binary_to_term.
Diffstat (limited to 'erts/emulator/hipe/hipe_mode_switch.h')
-rw-r--r--erts/emulator/hipe/hipe_mode_switch.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/hipe/hipe_mode_switch.h b/erts/emulator/hipe/hipe_mode_switch.h
index a3e908a3b3..06721e3c04 100644
--- a/erts/emulator/hipe/hipe_mode_switch.h
+++ b/erts/emulator/hipe/hipe_mode_switch.h
@@ -59,6 +59,9 @@ void hipe_empty_nstack(Process *p);
void hipe_set_closure_stub(ErlFunEntry *fe, unsigned num_free);
Eterm hipe_build_stacktrace(Process *p, struct StackTrace *s);
+void hipe_reserve_beam_trap_frame(Process*, Eterm reg[], unsigned arity);
+void hipe_unreserve_beam_trap_frame(Process*);
+
extern Uint hipe_beam_pc_return[];
extern Uint hipe_beam_pc_throw[];
extern Uint hipe_beam_pc_resume[];