]> git.saurik.com Git - apt.git/commitdiff
fix potential GetLock() fd leak
authorMichael Vogt <mvo@debian.org>
Thu, 25 Jul 2013 18:55:02 +0000 (20:55 +0200)
committerMichael Vogt <mvo@debian.org>
Thu, 25 Jul 2013 18:55:02 +0000 (20:55 +0200)
cmdline/apt-get.cc

index 85ed80a9586a86248de03dde16eef52603c1f56f..73b396795b9f84187c486d99a9f8f3931ed6ed4b 100644 (file)
@@ -2290,9 +2290,10 @@ bool DoClean(CommandLine &CmdL)
    FileFd Lock;
    if (_config->FindB("Debug::NoLocking",false) == false)
    {
-      Lock.Fd(GetLock(archivedir + "lock"));
-      if (_error->PendingError() == true)
+      int lock_fd = GetLock(archivedir + "lock");
+      if (lock_fd < 0)
         return _error->Error(_("Unable to lock the download directory"));
+      Lock.Fd(lock_fd);
    }
    
    pkgAcquire Fetcher;
@@ -2326,9 +2327,10 @@ bool DoAutoClean(CommandLine &CmdL)
    FileFd Lock;
    if (_config->FindB("Debug::NoLocking",false) == false)
    {
-      Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock"));
-      if (_error->PendingError() == true)
+      int lock_fd = GetLock(_config->FindDir("Dir::Cache::Archives") + "lock");
+      if (lock_fd < 0)
         return _error->Error(_("Unable to lock the download directory"));
+      Lock.Fd(lock_fd);
    }
    
    CacheFile Cache;