Bladeren bron

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.
Nick Mathewson 7 jaren geleden
bovenliggende
commit
1135405c8c
2 gewijzigde bestanden met toevoegingen van 8 en 4 verwijderingen
  1. 3 0
      changes/bug19578
  2. 5 4
      src/common/util.c

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

+ 5 - 4
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?",