commit 74193b932115a82417dc312721ffe0a10a7ed6dc Author: David Goulet dgoulet@torproject.org Date: Wed May 10 09:37:41 2017 -0400
hs: Use v3 maximum intro points value when decoding v3
Signed-off-by: David Goulet dgoulet@torproject.org --- src/or/hs_config.h | 3 +++ src/or/hs_descriptor.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/or/hs_config.h b/src/or/hs_config.h index 08072d1..f420791 100644 --- a/src/or/hs_config.h +++ b/src/or/hs_config.h @@ -11,6 +11,9 @@
#include "or.h"
+/* Maximum number of intro points per version 3 services. */ +#define HS_CONFIG_V3_MAX_INTRO_POINTS 20 + /* API */
int hs_config_service_all(const or_options_t *options, int validate_only); diff --git a/src/or/hs_descriptor.c b/src/or/hs_descriptor.c index b55f966..2393eac 100644 --- a/src/or/hs_descriptor.c +++ b/src/or/hs_descriptor.c @@ -62,6 +62,7 @@ #include "parsecommon.h" #include "rendcache.h" #include "hs_cache.h" +#include "hs_config.h" #include "torcert.h" /* tor_cert_encode_ed22519() */
/* Constant string value used for the descriptor format. */ @@ -2035,10 +2036,11 @@ desc_decode_encrypted_v3(const hs_descriptor_t *desc, decode_intro_points(desc, desc_encrypted_out, message);
/* Validation of maximum introduction points allowed. */ - if (smartlist_len(desc_encrypted_out->intro_points) > MAX_INTRO_POINTS) { + if (smartlist_len(desc_encrypted_out->intro_points) > + HS_CONFIG_V3_MAX_INTRO_POINTS) { log_warn(LD_REND, "Service descriptor contains too many introduction " "points. Maximum allowed is %d but we have %d", - MAX_INTRO_POINTS, + HS_CONFIG_V3_MAX_INTRO_POINTS, smartlist_len(desc_encrypted_out->intro_points)); goto err; }
tor-commits@lists.torproject.org