summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-11-04 14:55:34 +0000
committerSimon MacMullen <simon@rabbitmq.com>2013-11-04 14:55:34 +0000
commit2307326ceeaeb2bdf9e7762b40ba11ca2d8d6a15 (patch)
tree5bae1e9b2917944353acd3d47ed3c3ada052965d
parent221e4179322f55d953dfb4a7986dbf17f458299c (diff)
downloadrabbitmq-server-git-2307326ceeaeb2bdf9e7762b40ba11ca2d8d6a15.tar.gz
Validate utf-8-ness on the way into rabbitmqctl too.
-rw-r--r--src/rabbit_control_main.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl
index 6f36f99df5..f34632867a 100644
--- a/src/rabbit_control_main.erl
+++ b/src/rabbit_control_main.erl
@@ -706,7 +706,14 @@ unsafe_rpc(Node, Mod, Fun, Args) ->
end.
call(Node, {Mod, Fun, Args}) ->
- rpc_call(Node, Mod, Fun, lists:map(fun list_to_binary/1, Args)).
+ rpc_call(Node, Mod, Fun, lists:map(fun list_to_binary_utf8/1, Args)).
+
+list_to_binary_utf8(L) ->
+ B = list_to_binary(L),
+ case rabbit_binary_parser:validate_utf8(B) of
+ ok -> B;
+ error -> throw({error, {not_utf_8, L}})
+ end.
rpc_call(Node, Mod, Fun, Args) ->
rpc:call(Node, Mod, Fun, Args, ?RPC_TIMEOUT).