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
54d7d31cba in 0.2.2.29-beta.
This commit is contained in:
Nick Mathewson 2016-07-05 13:43:58 -04:00
parent 5a047cdc5f
commit 1135405c8c
2 changed files with 8 additions and 4 deletions

3
changes/bug19578 Normal file
View File

@ -0,0 +1,3 @@
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.

View File

@ -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?",