Commit d79d648e authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Don't write ControlPorts to disk till after we setuid and make datadir

Fix for bug 3747; bugfix on 0.2.2.26-beta.
parent 03f6ee8c
Loading
Loading
Loading
Loading

changes/bug3747

0 → 100644
+6 −0
Original line number Diff line number Diff line
  o Major bugfixes:
    - Write control ports to disk only after switching UID and
      creating the data directory. This way, we don't fail when
      starting up with a nonexistant DataDirectory and a
      ControlPortWriteToFile setting based on that directory. Fixes
      bug 3747; bugfix on Tor 0.2.2.26-beta.
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
@@ -1034,6 +1034,9 @@ options_act_reversible(or_options_t *old_options, char **msg)
    /* No need to roll back, since you can't change the value. */
  }

  /* Write control ports to disk as appropriate */
  control_ports_write_to_file();

 if (directory_caches_v2_dir_info(options)) {
    size_t len = strlen(options->DataDirectory)+32;
    char *fn = tor_malloc(len);
+0 −3
Original line number Diff line number Diff line
@@ -1061,9 +1061,6 @@ connection_create_listener(const struct sockaddr *listensockaddr,
         "%s listening on port %u.",
         conn_type_to_string(type), gotPort);

  if (type == CONN_TYPE_CONTROL_LISTENER)
    control_ports_write_to_file();

  conn->state = LISTENER_STATE_READY;
  if (start_reading) {
    connection_start_reading(conn);