diff options
author | Lukas Larsson <[email protected]> | 2018-06-05 10:41:20 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2018-06-05 10:41:20 +0200 |
commit | 0a95d9c3ba44d8824a0f9590bb301efec715cde0 (patch) | |
tree | 66b2809bc2e60288137d55f9c7337c88ecbde2a5 /erts/emulator/beam/erl_port_task.c | |
parent | cc6724f7c42dd92fd1d6a02248853203aaad73b6 (diff) | |
parent | bedf71d2cae1f01b83829e5c8432342cfb1238c7 (diff) | |
download | otp-0a95d9c3ba44d8824a0f9590bb301efec715cde0.tar.gz otp-0a95d9c3ba44d8824a0f9590bb301efec715cde0.tar.bz2 otp-0a95d9c3ba44d8824a0f9590bb301efec715cde0.zip |
mikpe/erts-port_task-invalid-call/PR-1828/ERL-621/OTP-15108
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.c | 5 |
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); } |