aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_port_task.c
diff options
context:
space:
mode:
authorMikael Pettersson <[email protected]>2018-05-29 17:42:14 +0200
committerMikael Pettersson <[email protected]>2018-05-29 17:42:14 +0200
commitbedf71d2cae1f01b83829e5c8432342cfb1238c7 (patch)
treefc849875481043cd3640bf5ca408be3c3d1fcbfe /erts/emulator/beam/erl_port_task.c
parent4f91c8a34f4cc2c728a63e8d218566b3b3795b10 (diff)
downloadotp-bedf71d2cae1f01b83829e5c8432342cfb1238c7.tar.gz
otp-bedf71d2cae1f01b83829e5c8432342cfb1238c7.tar.bz2
otp-bedf71d2cae1f01b83829e5c8432342cfb1238c7.zip
do not call abort_signal_task() with invalid data
Diffstat (limited to 'erts/emulator/beam/erl_port_task.c')
-rw-r--r--erts/emulator/beam/erl_port_task.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_port_task.c b/erts/emulator/beam/erl_port_task.c
index 4a3671df0c..3953a4c2e9 100644
--- a/erts/emulator/beam/erl_port_task.c
+++ b/erts/emulator/beam/erl_port_task.c
@@ -1567,8 +1567,9 @@ fail:
erts_port_dec_refc(pp);
if (ptp) {
- abort_signal_task(pp, ERTS_PROC2PORT_SIG_ABORT,
- ptp->type, &ptp->u.alive.td, 0);
+ if (ptp->type == ERTS_PORT_TASK_PROC_SIG)
+ abort_signal_task(pp, ERTS_PROC2PORT_SIG_ABORT,
+ ptp->type, &ptp->u.alive.td, 0);
port_task_free(ptp);
}