diff options
author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-09-10 10:32:42 +0100 |
---|---|---|
committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-09-10 10:32:42 +0100 |
commit | d5e9bebeb20873ee4b8140a168310a5aa5d81d72 (patch) | |
tree | c2a5f79017727fad6cd66580e0ccb8c5d2c5ae39 | |
parent | 4f489bd425cd9bcfd47ed1d2de84650840446be9 (diff) | |
download | rabbitmq-server-bug24867.tar.gz |
check that the ttl values are less than what `erlang:send_after' likesbug24867
Since it's an extension to begin with, I think it's OK to limit it. I doubt
anyone will ever want a ttl of more than 50 days, and if they really complain
we can fix it in the future.
-rw-r--r-- | src/rabbit_amqqueue.erl | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 461b25eb..7628d109 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -40,6 +40,8 @@ -define(INTEGER_ARG_TYPES, [byte, short, signedint, long]). +-define(MAX_EXPIRY_TIMER, 4294967295). + -define(MORE_CONSUMER_CREDIT_AFTER, 50). -define(FAILOVER_WAIT_MILLIS, 100). @@ -397,16 +399,18 @@ check_int_arg({Type, _}, _) -> check_positive_int_arg({Type, Val}, Args) -> case check_int_arg({Type, Val}, Args) of - ok when Val > 0 -> ok; - ok -> {error, {value_zero_or_less, Val}}; - Error -> Error + ok when Val > ?MAX_EXPIRY_TIMER -> {error, {value_too_big, Val}}; + ok when Val > 0 -> ok; + ok -> {error, {value_zero_or_less, Val}}; + Error -> Error end. check_non_neg_int_arg({Type, Val}, Args) -> case check_int_arg({Type, Val}, Args) of - ok when Val >= 0 -> ok; - ok -> {error, {value_less_than_zero, Val}}; - Error -> Error + ok when Val > ?MAX_EXPIRY_TIMER -> {error, {value_too_big, Val}}; + ok when Val >= 0 -> ok; + ok -> {error, {value_less_than_zero, Val}}; + Error -> Error end. check_dlxrk_arg({longstr, _}, Args) -> |