aboutsummaryrefslogtreecommitdiff
path: root/src/or/hs_control.c
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2017-12-06 14:52:02 +0100
committerAlexander Færøy <ahf@torproject.org>2017-12-06 14:56:52 +0100
commit9fa38bd996e345990b81bce0995a25be2ee4c98f (patch)
tree54b794d4344b2677b4a7bf47f8ddc1d699791a06 /src/or/hs_control.c
parent01700d779ca2a0cfb40b04741e3cdda5874d2156 (diff)
downloadtor-9fa38bd996e345990b81bce0995a25be2ee4c98f.tar.gz
tor-9fa38bd996e345990b81bce0995a25be2ee4c98f.zip
Check the return value of hs_parse_address().
This patch adds a check for the return value of `hs_parse_address()` in `hs_control_hspost_command()`. Since it should not be possible for `hs_parse_address()` to fail in this context we wrap the error check with the `BUG()` macro. See: https://bugs.torproject.org/24543
Diffstat (limited to 'src/or/hs_control.c')
-rw-r--r--src/or/hs_control.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/or/hs_control.c b/src/or/hs_control.c
index 1b1fe78575..87b4e3fca8 100644
--- a/src/or/hs_control.c
+++ b/src/or/hs_control.c
@@ -222,7 +222,9 @@ hs_control_hspost_command(const char *body, const char *onion_address,
/* This can't fail because we require the caller to pass us a valid onion
* address that has passed hs_address_is_valid(). */
- hs_parse_address(onion_address, &identity_pk, NULL, NULL);
+ if (BUG(hs_parse_address(onion_address, &identity_pk, NULL, NULL) < 0)) {
+ goto done; // LCOV_EXCL_LINE
+ }
/* Only decode the plaintext part which is what the directory will do to
* validate before caching. */