[tor-commits] [tor/master] Fix a variable-shadowing bug in check_private_dir

nickm at torproject.org nickm at torproject.org
Thu Jul 28 11:01:23 UTC 2016


commit 1135405c8c6ea315cd035171770a6701edae57f0
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Jul 5 13:43:58 2016 -0400

    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
    54d7d31cba84232 in 0.2.2.29-beta.
---
 changes/bug19578  | 3 +++
 src/common/util.c | 9 +++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/changes/bug19578 b/changes/bug19578
new file mode 100644
index 0000000..8b3355b
--- /dev/null
+++ b/changes/bug19578
@@ -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.
diff --git a/src/common/util.c b/src/common/util.c
index 538aeb1..d61985e 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -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?",





More information about the tor-commits mailing list