diff options
author | David Goulet <dgoulet@torproject.org> | 2017-05-10 09:37:41 -0400 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2017-07-13 16:49:08 -0400 |
commit | 74193b932115a82417dc312721ffe0a10a7ed6dc (patch) | |
tree | 559a33fc07c4a7fb1bfc2b821e598b2cae97c132 /src/or | |
parent | 765ed5dac160b28fb658560e8f39d1d7ab3d1c75 (diff) | |
download | tor-74193b932115a82417dc312721ffe0a10a7ed6dc.tar.gz tor-74193b932115a82417dc312721ffe0a10a7ed6dc.zip |
hs: Use v3 maximum intro points value when decoding v3
Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/hs_config.h | 3 | ||||
-rw-r--r-- | 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 08072d18d2..f4207917e5 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 b55f9663bc..2393eac252 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; } |