Commit 1135405c authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Fix a variable-shadowing bug in check_private_dir

We introduded a shadowed variable, thereby causing a log message to
be wrong. Fixes 19578. I believe the bug was introduced by
54d7d31c in 0.2.2.29-beta.
parent 5a047cdc
Loading
Loading
Loading
Loading

changes/bug19578

0 → 100644
+3 −0
Original line number Diff line number Diff line
  o Minor bugfixes (logging):
    - When logging a directory ownership mismatch, log the owning username
      correctly. Fixes bug 19578; bugfix on 0.2.2.29-beta.
+5 −4
Original line number Diff line number Diff line
@@ -2291,13 +2291,14 @@ check_private_dir,(const char *dirname, cpd_check_t check,
    running_gid = getgid();
  }
  if (st.st_uid != running_uid) {
    const struct passwd *pw = NULL;
    const struct passwd *pw_uid = NULL;
    char *process_ownername = NULL;

    pw = tor_getpwuid(running_uid);
    process_ownername = pw ? tor_strdup(pw->pw_name) : tor_strdup("<unknown>");
    pw_uid = tor_getpwuid(running_uid);
    process_ownername = pw_uid ? tor_strdup(pw_uid->pw_name) :
      tor_strdup("<unknown>");

    pw = tor_getpwuid(st.st_uid);
    pw_uid = tor_getpwuid(st.st_uid);

    log_warn(LD_FS, "%s is not owned by this user (%s, %d) but by "
        "%s (%d). Perhaps you are running Tor as the wrong user?",