]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Check the return value of hs_parse_address().
authorAlexander Færøy <ahf@torproject.org>
Wed, 6 Dec 2017 13:52:02 +0000 (14:52 +0100)
committerAlexander Færøy <ahf@torproject.org>
Wed, 6 Dec 2017 13:56:52 +0000 (14:56 +0100)
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

src/or/hs_control.c

index 1b1fe785759fb1e625625cbed7cc1fd3febeb789..87b4e3fca8269bc08901f167815ec2e1aceaa083 100644 (file)
@@ -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. */