summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-10-31 14:00:18 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-10-31 14:10:19 +0100
commit4b644692a41732dff21970ed1cfe640a848e61b7 (patch)
tree13b55bc8c6eb40b458c8e9346f33bd83900335a4 /src
parentc6373392c1dad8b5424ee3f008a7e1ac7ae861cb (diff)
downloadrabbitmq-server-git-4b644692a41732dff21970ed1cfe640a848e61b7.tar.gz
rabbit_reader: Format `Explanation` before passing it
... to `rabbit_misc:amqp_error()`. `Explanation` can be a user input. Therefore, we don't want to pass it as a format string to `rabbit_misc:amqp_error()`, as we can't trust its content. Now, we pass our own format string ("~s") and `Explanation` becomes the argument to that format string. This ensures we don't interpret untrusted user input. Discussed with: @dcorbacho, @essen and @michaelklishin.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_reader.erl2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index 39ac0ef8ac..116dcf89e6 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -663,7 +663,7 @@ switch_callback(State, Callback, Length) ->
terminate(Explanation, State) when ?IS_RUNNING(State) ->
{normal, handle_exception(State, 0,
rabbit_misc:amqp_error(
- connection_forced, Explanation, [], none))};
+ connection_forced, "~s", [Explanation], none))};
terminate(_Explanation, State) ->
{force, State}.