]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Reject relative control socket paths and emit a warning.
authorPeter Palfrader <peter@palfrader.org>
Mon, 15 Jul 2013 08:46:22 +0000 (10:46 +0200)
committerNick Mathewson <nickm@torproject.org>
Mon, 15 Jul 2013 13:04:17 +0000 (09:04 -0400)
Previously we would accept relative paths, but only if they contained a
slash somewhere (not at the end).

Otherwise we would silently not work.  Closes: #9258.  Bugfix on
0.2.3.16-alpha.

src/or/connection.c

index aa3cc330da4262cc6de91828e62652012eb3ed7d..edcf966e75065312a4204355d1e34791cdb13812 100644 (file)
@@ -877,8 +877,11 @@ check_location_for_unix_socket(const or_options_t *options, const char *path)
   int r = -1;
   char *p = tor_strdup(path);
   cpd_check_t flags = CPD_CHECK_MODE_ONLY;
-  if (get_parent_directory(p)<0)
+  if (get_parent_directory(p)<0 || p[0] != '/') {
+    log_warn(LD_GENERAL, "Bad unix socket address '%s'.  Tor does not support "
+             "relative patchs for unix sockets.", path);
     goto done;
+  }
 
   if (options->ControlSocketsGroupWritable)
     flags |= CPD_GROUP_OK;