[tor-commits] [tor/maint-0.4.3] Set *have_low_ports_out from stub port_parse_ports_relay().

nickm at torproject.org nickm at torproject.org
Fri Mar 20 11:57:00 UTC 2020


commit c478dc9b2f6c320cc21a10ffed0d7cc245fa933c
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Mar 19 20:04:53 2020 -0400

    Set *have_low_ports_out from stub port_parse_ports_relay().
    
    Previously we just ignored this option, which would leave it unset,
    and cause an assertion failure later on when running with the User
    option.
    
    Fixes bug 33668; bugfix on 0.4.3.1-alpha.
---
 changes/bug33668                 |  4 ++++
 src/feature/relay/relay_config.h | 17 ++++++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/changes/bug33668 b/changes/bug33668
new file mode 100644
index 000000000..2b0830d6d
--- /dev/null
+++ b/changes/bug33668
@@ -0,0 +1,4 @@
+  o Minor bugfixes (--disable-module-relay):
+    - Fix an assertion failure when Tor is build without the relay module,
+      and then invoked with the "User" option. Fixes bug 33668; bugfix on
+      0.4.3.1-alpha.
diff --git a/src/feature/relay/relay_config.h b/src/feature/relay/relay_config.h
index 7a05561c2..c70c322d8 100644
--- a/src/feature/relay/relay_config.h
+++ b/src/feature/relay/relay_config.h
@@ -125,6 +125,20 @@ options_validate_relay_mode(const struct or_options_t *old_options,
   return 0;
 }
 
+static inline int
+port_parse_ports_relay(or_options_t *options,
+                       char **msg,
+                       smartlist_t *ports_out,
+                       int *have_low_ports_out)
+{
+  (void)options;
+  (void)msg;
+  (void)ports_out;
+  if (*have_low_ports_out < 0)
+    *have_low_ports_out = 0;
+  return 0;
+}
+
 #define relay_get_dirportfrontpage() \
   (NULL)
 #define relay_config_free_all() \
@@ -138,9 +152,6 @@ options_validate_relay_mode(const struct or_options_t *old_options,
 #define port_warn_nonlocal_ext_orports(ports, portname) \
   (((void)(ports)),((void)(portname)))
 
-#define port_parse_ports_relay(options, msg, ports_out, have_low_ports_out) \
-  (((void)(options)),((void)(msg)),((void)(ports_out)), \
-   ((void)(have_low_ports_out)),0)
 #define port_update_port_set_relay(options, ports) \
   (((void)(options)),((void)(ports)))
 





More information about the tor-commits mailing list