Merge pull request #9387 from lafirest/fix/ctl_atom_leak
chore: make remsh node name away from the atom DOS attack
This commit is contained in:
commit
4dd34d11cd
2
bin/emqx
2
bin/emqx
|
@ -396,7 +396,7 @@ remsh() {
|
|||
|
||||
# Generate a random id
|
||||
relx_gen_id() {
|
||||
od -t x -N 4 /dev/urandom | head -n1 | awk '{print $2}'
|
||||
od -t u -N 4 /dev/urandom | head -n1 | awk '{print $2 % 1000}'
|
||||
}
|
||||
|
||||
call_nodetool() {
|
||||
|
|
|
@ -226,9 +226,14 @@ nodename(Name) ->
|
|||
|
||||
this_node_name(longnames, Name) ->
|
||||
[Node, Host] = re:split(Name, "@", [{return, list}, unicode]),
|
||||
list_to_atom(lists:concat(["remsh_maint_", Node, os:getpid(), "@", Host]));
|
||||
list_to_atom(lists:concat(["remsh_maint_", Node, node_name_suffix_id(), "@", Host]));
|
||||
this_node_name(shortnames, Name) ->
|
||||
list_to_atom(lists:concat(["remsh_maint_", Name, os:getpid()])).
|
||||
list_to_atom(lists:concat(["remsh_maint_", Name, node_name_suffix_id()])).
|
||||
|
||||
%% use the reversed value that from pid mod 1000 as the node name suffix
|
||||
node_name_suffix_id() ->
|
||||
Pid = os:getpid(),
|
||||
string:slice(string:reverse(Pid), 0, 3).
|
||||
|
||||
%% For windows???
|
||||
create_mnesia_dir(DataDir, NodeName) ->
|
||||
|
|
Loading…
Reference in New Issue