]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/fileutl.cc
Merge remote-tracking branch 'upstream/debian/jessie' into debian/sid
[apt.git] / apt-pkg / contrib / fileutl.cc
index bfd9581831f5917dbb0d1e51a2b67c42be7b7aed..1e6d96fe91e0904b75a4fac6b5eb9a307cf14e8f 100644 (file)
@@ -778,8 +778,9 @@ pid_t ExecFork(std::set<int> KeepFDs)
       signal(SIGCONT,SIG_DFL);
       signal(SIGTSTP,SIG_DFL);
 
+      long ScOpenMax = sysconf(_SC_OPEN_MAX);
       // Close all of our FDs - just in case
-      for (int K = 3; K != sysconf(_SC_OPEN_MAX); K++)
+      for (int K = 3; K != ScOpenMax; K++)
       {
         if(KeepFDs.find(K) == KeepFDs.end())
            fcntl(K,F_SETFD,FD_CLOEXEC);
@@ -1798,7 +1799,8 @@ static bool StatFileFd(char const * const msg, int const iFd, std::string const
         // higher-level code will generate more meaningful messages,
         // even translated this would be meaningless for users
         return _error->Errno("fstat", "Unable to determine %s for fd %i", msg, iFd);
-      ispipe = S_ISFIFO(Buf.st_mode);
+      if (FileName.empty() == false)
+        ispipe = S_ISFIFO(Buf.st_mode);
    }
 
    // for compressor pipes st_size is undefined and at 'best' zero