diff options
author | Erlang/OTP <otp@erlang.org> | 2021-01-12 18:01:43 +0100 |
---|---|---|
committer | Erlang/OTP <otp@erlang.org> | 2021-01-12 18:01:43 +0100 |
commit | 0d84d8a4e55c67cfc9698119e4c0f367d5b2b2e4 (patch) | |
tree | bb06ce9fc7cd17320dd8e32c9053ce619e0f709d /erts/emulator/beam/erl_process.c | |
parent | 2cc533a96dfc38d13666969348765a2231c9b3d9 (diff) | |
parent | 254e0c840350c9ce008f3fc0f60449a8478369a9 (diff) | |
download | erlang-0d84d8a4e55c67cfc9698119e4c0f367d5b2b2e4.tar.gz |
Merge branch 'rickard/suspend-resume-BIF-fix/OTP-17080' into maint-22
* rickard/suspend-resume-BIF-fix/OTP-17080:
Check suspendee argument for suspend_process()/resume_process()
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r-- | erts/emulator/beam/erl_process.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index 4611c8de64..396875ca56 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -8720,6 +8720,9 @@ erts_internal_suspend_process_2(BIF_ALIST_2) if (BIF_P->common.id == BIF_ARG_1) BIF_RET(am_badarg); /* We are not allowed to suspend ourselves */ + if (!is_internal_pid(BIF_ARG_1)) + BIF_RET(am_badarg); + if (is_not_nil(BIF_ARG_2)) { /* Parse option list */ Eterm arg = BIF_ARG_2; @@ -8868,6 +8871,9 @@ resume_process_1(BIF_ALIST_1) if (BIF_P->common.id == BIF_ARG_1) BIF_ERROR(BIF_P, BADARG); + if (!is_internal_pid(BIF_ARG_1)) + BIF_ERROR(BIF_P, BADARG); + mon = erts_monitor_tree_lookup(ERTS_P_MONITORS(BIF_P), BIF_ARG_1); if (!mon) { |