22 lines
1.5 KiB
Diff
22 lines
1.5 KiB
Diff
# UNDF: UNDF-2026-000000360
|
|
--- a/deps/rabbit/src/rabbit_amqqueue.erl
|
|
+++ b/deps/rabbit/src/rabbit_amqqueue.erl
|
|
@@ -902,12 +902,14 @@ check_declare_arguments(QueueName, Args0, DefaultQueueType) ->
|
|
check_arguments_type_and_value(QueueName, Args, [{<<"x-queue-type">>, fun check_queue_type/2}]),
|
|
Type = get_queue_type(Args),
|
|
QueueTypeArgs = rabbit_queue_type:arguments(queue_arguments, Type),
|
|
- Validators = lists:filter(fun({Arg, _}) -> lists:member(Arg, QueueTypeArgs) end, declare_args()),
|
|
+ QueueTypeArgsSet = sets:from_list(QueueTypeArgs, [{version, 2}]),
|
|
+ Validators = lists:filter(fun({Arg, _}) -> sets:is_element(Arg, QueueTypeArgsSet) end, declare_args()),
|
|
check_arguments_type_and_value(QueueName, Args, Validators),
|
|
InvalidArgs = rabbit_queue_type:arguments(queue_arguments) -- QueueTypeArgs,
|
|
check_arguments_key(QueueName, Type, Args, InvalidArgs).
|
|
|
|
check_consume_arguments(QueueName, QueueType, Args) ->
|
|
QueueTypeArgs = rabbit_queue_type:arguments(consumer_arguments, QueueType),
|
|
- Validators = lists:filter(fun({Arg, _}) -> lists:member(Arg, QueueTypeArgs) end, consume_args()),
|
|
+ QueueTypeArgsSet = sets:from_list(QueueTypeArgs, [{version, 2}]),
|
|
+ Validators = lists:filter(fun({Arg, _}) -> sets:is_element(Arg, QueueTypeArgsSet) end, consume_args()),
|
|
check_arguments_type_and_value(QueueName, Args, Validators),
|
|
InvalidArgs = rabbit_queue_type:arguments(consumer_arguments) -- QueueTypeArgs,
|
|
check_arguments_key(QueueName, QueueType, Args, InvalidArgs).
|