diff options
author | Rickard Green <[email protected]> | 2015-03-17 12:51:13 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2015-03-17 12:51:13 +0100 |
commit | e74c4459c0ff9ab7504117a85b2634d5dd7df524 (patch) | |
tree | c5b7ce8a721be4b0ef3b6a0966c6848d5a4705c6 /erts/emulator/beam/io.c | |
parent | 6177d4fa646eab58f9dfb2c8fffec748aa230aba (diff) | |
parent | 2b69d295dc73f845305a0e2d7763a53657af0725 (diff) | |
download | otp-e74c4459c0ff9ab7504117a85b2634d5dd7df524.tar.gz otp-e74c4459c0ff9ab7504117a85b2634d5dd7df524.tar.bz2 otp-e74c4459c0ff9ab7504117a85b2634d5dd7df524.zip |
Merge branch 'rickard/port_control_flags_crash/OTP-12544' into maint
* rickard/port_control_flags_crash/OTP-12544:
Make access to control_flags safe in non-smp emulator
Diffstat (limited to 'erts/emulator/beam/io.c')
-rw-r--r-- | erts/emulator/beam/io.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/erts/emulator/beam/io.c b/erts/emulator/beam/io.c index 012a7d1a4b..be34c6effc 100644 --- a/erts/emulator/beam/io.c +++ b/erts/emulator/beam/io.c @@ -4087,6 +4087,9 @@ erts_port_control(Process* c_p, size, &resp_bufp, &resp_size); + + control_flags = prt->control_flags; + finalize_imm_drv_call(&try_call_state); if (tmp_alloced) erts_free(ERTS_ALC_T_TMP, bufp); @@ -4094,8 +4097,6 @@ erts_port_control(Process* c_p, return ERTS_PORT_OP_BADARG; } - control_flags = prt->control_flags; - hsz = port_control_result_size(control_flags, resp_bufp, &resp_size, |