summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorErlang/OTP <otp@erlang.org>2021-01-12 18:01:43 +0100
committerErlang/OTP <otp@erlang.org>2021-01-12 18:01:43 +0100
commit0d84d8a4e55c67cfc9698119e4c0f367d5b2b2e4 (patch)
treebb06ce9fc7cd17320dd8e32c9053ce619e0f709d /erts/emulator/beam/erl_process.c
parent2cc533a96dfc38d13666969348765a2231c9b3d9 (diff)
parent254e0c840350c9ce008f3fc0f60449a8478369a9 (diff)
downloaderlang-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.c6
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) {