Skip to content

Commit

Permalink
Merge branch 'rickard/frag-unaliased-leak/25/OTP-18885' into rickard/…
Browse files Browse the repository at this point in the history
…frag-unaliased-leak/OTP-18885

* rickard/frag-unaliased-leak/25/OTP-18885:
  [erts] Fix crash on reception of fragmentated message to unaliased process
  • Loading branch information
rickard-green committed Nov 30, 2023
2 parents 5133440 + 4c5bc4e commit ceb208a
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions erts/emulator/beam/erl_proc_sig_queue.c
Original file line number Diff line number Diff line change
Expand Up @@ -5436,8 +5436,6 @@ handle_alias_message(Process *c_p, ErtsMessage *sig, ErtsMessage ***next_nm_sig)
ASSERT(is_internal_pid(from) || is_atom(from));
ASSERT(is_internal_pid_ref(alias));

ERL_MESSAGE_FROM(sig) = from;

mon = erts_monitor_tree_lookup(ERTS_P_MONITORS(c_p), alias);
flags = mon ? mon->flags : (Uint16) 0;
if (!(flags & ERTS_ML_STATE_ALIAS_MASK)
Expand All @@ -5447,17 +5445,13 @@ handle_alias_message(Process *c_p, ErtsMessage *sig, ErtsMessage ***next_nm_sig)
* drop message...
*/
remove_nm_sig(c_p, sig, next_nm_sig);
/* restored as message... */
ERL_MESSAGE_TERM(sig) = msg;
if (type == ERTS_SIG_Q_TYPE_DIST)
sig->data.heap_frag = &sig->hfrag;
else
sig->data.attached = data_attached;
sig->next = NULL;;
erts_cleanup_messages(sig);
return 2;
}

ERL_MESSAGE_FROM(sig) = from;

if ((flags & ERTS_ML_STATE_ALIAS_MASK) == ERTS_ML_STATE_ALIAS_ONCE) {
mon->flags &= ~ERTS_ML_STATE_ALIAS_MASK;

Expand Down

0 comments on commit ceb208a

Please sign in to comment.