From: Michael Vogt Date: Thu, 25 Jul 2013 18:26:11 +0000 (+0200) Subject: fix resource leak (thanks coverity) X-Git-Tag: 0.9.11~15^2~15 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/3d165906327828990bec2c58a3c1f4ee77467523 fix resource leak (thanks coverity) --- diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index edf612810..398830ff5 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -244,17 +244,21 @@ int GetLock(string File,bool Errors) fl.l_len = 0; if (fcntl(FD,F_SETLK,&fl) == -1) { + // always close to not leak resources + int Tmp = errno; + close(FD); + errno = Tmp; + if (errno == ENOLCK) { + _error->Warning(_("Not using locking for nfs mounted lock file %s"),File.c_str()); return dup(0); // Need something for the caller to close - } + } + if (Errors == true) _error->Errno("open",_("Could not get lock %s"),File.c_str()); - int Tmp = errno; - close(FD); - errno = Tmp; return -1; }