Browse Source

Always close compressed files in FileFd

We dup() the file descriptor when opening compressed files, so we
always need to close the dup()ed one. Furthermore, not unsetting
the d-pointer causes issues when running OpenDescriptor() multiple
times on the same file descriptor.
debian/1.8.y
Julian Andres Klode 8 years ago
parent
commit
2da8aae555
  1. 13
      apt-pkg/contrib/fileutl.cc

13
apt-pkg/contrib/fileutl.cc

@ -2006,12 +2006,13 @@ bool FileFd::Close()
{
if ((Flags & Compressed) != Compressed && iFd > 0 && close(iFd) != 0)
Res &= _error->Errno("close",_("Problem closing the file %s"), FileName.c_str());
if (d != NULL)
{
Res &= d->CloseDown(FileName);
delete d;
d = NULL;
}
}
if (d != NULL)
{
Res &= d->CloseDown(FileName);
delete d;
d = NULL;
}
if ((Flags & Replace) == Replace) {

Loading…
Cancel
Save