diff options
author | Rickard Green <[email protected]> | 2016-11-22 16:14:57 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-11-22 16:14:57 +0100 |
commit | ad94a4bdb24c93d3cafc7351c4c98f346a5f53cc (patch) | |
tree | 20f4f498d8ddef22e8743205f410817c51236aea /erts/emulator/beam/beam_bif_load.c | |
parent | 7a6973a2fa238468bb47d175908e99d230fbc0b1 (diff) | |
download | otp-ad94a4bdb24c93d3cafc7351c4c98f346a5f53cc.tar.gz otp-ad94a4bdb24c93d3cafc7351c4c98f346a5f53cc.tar.bz2 otp-ad94a4bdb24c93d3cafc7351c4c98f346a5f53cc.zip |
Fix check_process_code() when NifExport is in use
Diffstat (limited to 'erts/emulator/beam/beam_bif_load.c')
-rw-r--r-- | erts/emulator/beam/beam_bif_load.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_bif_load.c b/erts/emulator/beam/beam_bif_load.c index 5969197168..74a333ecbe 100644 --- a/erts/emulator/beam/beam_bif_load.c +++ b/erts/emulator/beam/beam_bif_load.c @@ -1086,6 +1086,11 @@ check_process_code(Process* rp, Module* modp, Uint flags, int *redsp, int fcalls || ErtsInArea(rp->cp, mod_start, mod_size)) { return am_true; } + + *redsp += 1; + + if (erts_check_nif_export_in_area(rp, mod_start, mod_size)) + return am_true; *redsp += (STACK_START(rp) - rp->stop) / 32; @@ -1161,6 +1166,12 @@ check_process_code(Process* rp, Module* modp, Uint flags, int *redsp, int fcalls || ErtsInArea(rp->cp, mod_start, mod_size)) { return am_true; } + + *redsp += 1; + + if (erts_check_nif_export_in_area(rp, mod_start, mod_size)) + return am_true; + /* * Check all continuation pointers stored on the stack. |