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
|
# Generate a random id
|
||||||
relx_gen_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() {
|
call_nodetool() {
|
||||||
|
|
|
@ -226,9 +226,14 @@ nodename(Name) ->
|
||||||
|
|
||||||
this_node_name(longnames, Name) ->
|
this_node_name(longnames, Name) ->
|
||||||
[Node, Host] = re:split(Name, "@", [{return, list}, unicode]),
|
[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) ->
|
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???
|
%% For windows???
|
||||||
create_mnesia_dir(DataDir, NodeName) ->
|
create_mnesia_dir(DataDir, NodeName) ->
|
||||||
|
|
Loading…
Reference in New Issue