[tor-commits] [tor/master] Fix a segfault during startup

nickm at torproject.org nickm at torproject.org
Thu Feb 11 17:15:20 UTC 2016


commit 42e131e9acca7c51fb220935deda5dc681004e3f
Author: Peter Palfrader <peter at palfrader.org>
Date:   Sat Feb 6 22:17:02 2016 +0100

    Fix a segfault during startup
    
    If unix socket was configured as listener (such as a ControlSocket or a
    SocksPort unix socket), and tor was started as root but not configured
    to switch to another user, tor would segfault while trying to string
    compare a NULL value.  Fixes bug 18261; bugfix on 0.2.8.1-alpha. Patch
    by weasel.
---
 changes/bug18261    | 6 ++++++
 src/or/connection.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/changes/bug18261 b/changes/bug18261
new file mode 100644
index 0000000..df4c74f
--- /dev/null
+++ b/changes/bug18261
@@ -0,0 +1,6 @@
+  o Minor features (crypto):
+    - Fix a segfault during startup:  If unix socket was configured as
+      listener (such as a ControlSocket or a SocksPort unix socket), and
+      tor was started as root but not configured to switch to another
+      user, tor would segfault while trying to string compare a NULL
+      value.  Fixes bug 18261; bugfix on 0.2.8.1-alpha. Patch by weasel.
diff --git a/src/or/connection.c b/src/or/connection.c
index 123c33a..efd730f 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -2398,7 +2398,7 @@ retry_listener_ports(smartlist_t *old_conns,
     /* We don't need to be root to create a UNIX socket, so defer until after
      * setuid. */
     const or_options_t *options = get_options();
-    if (port->is_unix_addr && !geteuid() && strcmp(options->User, "root"))
+    if (port->is_unix_addr && !geteuid() && (options->User) && strcmp(options->User, "root"))
       continue;
 #endif
 





More information about the tor-commits mailing list