java-topology/defects/rabbitmq/patch/rmq-0004-check-arguments-key-sets.patch

29 lines
1.5 KiB
Diff

# UNDF: UNDF-2026-000000387
--- a/deps/rabbit/src/rabbit_amqqueue.erl
+++ b/deps/rabbit/src/rabbit_amqqueue.erl
@@ -932,11 +932,12 @@ check_arguments_key(QueueName, QueueType, Args, InvalidArgs) ->
- lists:foreach(fun(Arg) ->
- ArgKey = element(1, Arg),
- case lists:member(ArgKey, InvalidArgs) of
- false ->
- ok;
- true ->
- rabbit_misc:protocol_error(
- precondition_failed,
- "invalid arg '~ts' for ~ts of queue type ~ts",
- [ArgKey, rabbit_misc:rs(QueueName), QueueType])
- end
- end, Args).
+ InvalidArgsSet = sets:from_list(InvalidArgs, [{version, 2}]),
+ lists:foreach(fun(Arg) ->
+ ArgKey = element(1, Arg),
+ case sets:is_element(ArgKey, InvalidArgsSet) of
+ false ->
+ ok;
+ true ->
+ rabbit_misc:protocol_error(
+ precondition_failed,
+ "invalid arg '~ts' for ~ts of queue type ~ts",
+ [ArgKey, rabbit_misc:rs(QueueName), QueueType])
+ end
+ end, Args).