Explorar o código

check that auth.conf exists before chowning it

Git-Dch: Ignore
David Kalnischkies %!s(int64=11) %!d(string=hai) anos
pai
achega
e845cde33c
Modificáronse 1 ficheiros con 4 adicións e 3 borrados
  1. 4 3
      apt-pkg/acquire.cc

+ 4 - 3
apt-pkg/acquire.cc

@@ -92,9 +92,10 @@ static bool SetupAPTPartialDirectory(std::string const &grand, std::string const
          if(chown(partial.c_str(), pw->pw_uid, gr->gr_gid) != 0)
             _error->WarningE("SetupAPTPartialDirectory", "chown to %s:root of directory %s failed", SandboxUser.c_str(), partial.c_str());
          // chown the auth.conf file
-         std::string AuthConf = _config->FindFile("Dir::Etc::netrc");
-         if(chown(AuthConf.c_str(), pw->pw_uid, gr->gr_gid) != 0)
-            _error->WarningE("SetupAPTPartialDirectory", "chown to %s:root of file %s failed", SandboxUser.c_str(), AuthConf.c_str());
+         std::string const AuthConf = _config->FindFile("Dir::Etc::netrc");
+	 if(AuthConf.empty() == false && RealFileExists(AuthConf) &&
+	       chown(AuthConf.c_str(), pw->pw_uid, gr->gr_gid) != 0)
+	    _error->WarningE("SetupAPTPartialDirectory", "chown to %s:root of file %s failed", SandboxUser.c_str(), AuthConf.c_str());
       }
    }
    if (chmod(partial.c_str(), 0700) != 0)