aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2015-03-17 12:51:13 +0100
committerRickard Green <[email protected]>2015-03-17 12:51:13 +0100
commite74c4459c0ff9ab7504117a85b2634d5dd7df524 (patch)
treec5b7ce8a721be4b0ef3b6a0966c6848d5a4705c6
parent6177d4fa646eab58f9dfb2c8fffec748aa230aba (diff)
parent2b69d295dc73f845305a0e2d7763a53657af0725 (diff)
downloadotp-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
-rw-r--r--erts/emulator/beam/io.c5
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,