diff options
-rw-r--r-- | apt-inst/contrib/extracttar.cc | 2 | ||||
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 6 | ||||
-rw-r--r-- | debian/changelog | 16 |
3 files changed, 20 insertions, 4 deletions
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 12919a7cd..806ba796d 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -146,7 +146,7 @@ bool ExtractTar::StartGzip() } // Fix up our FDs - InFd.Fd(Pipes[0]); + InFd.OpenDescriptor(Pipes[0], FileFd::ReadOnly, FileFd::None, true); close(Pipes[1]); return true; } diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 496daf1df..296426c80 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -738,6 +738,7 @@ bool pkgDPkgPM::OpenLog() d->history_out = fopen(history_name.c_str(),"a"); if (d->history_out == NULL) return _error->WarningE("OpenLog", _("Could not open file '%s'"), history_name.c_str()); + SetCloseExec(fileno(d->history_out), true); chmod(history_name.c_str(), 0644); fprintf(d->history_out, "\nStart-Date: %s\n", timestr); string remove, purge, install, reinstall, upgrade, downgrade; @@ -1596,7 +1597,10 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg) const char *ops_str[] = {"Install", "Configure","Remove","Purge"}; fprintf(report, "AptOrdering:\n"); for (vector<Item>::iterator I = List.begin(); I != List.end(); ++I) - fprintf(report, " %s: %s\n", (*I).Pkg.Name(), ops_str[(*I).Op]); + if ((*I).Pkg != NULL) + fprintf(report, " %s: %s\n", (*I).Pkg.Name(), ops_str[(*I).Op]); + else + fprintf(report, " %s: %s\n", "NULL", ops_str[(*I).Op]); // attach dmesg log (to learn about segfaults) if (FileExists("/bin/dmesg")) diff --git a/debian/changelog b/debian/changelog index 18242e081..2f5a3dc5c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,13 @@ -apt (0.9.2) unstable; urgency=low +apt (0.9.2) UNRELEASED; urgency=low + + [ Michael Vogt ] + * apt-inst/contrib/extracttar.cc: + - ensure that in StartGzip the InFd is set to "AutoClose" to ensure + that the pipe is closed when InFd is closed. This fixes a Fd leak + (LP: #985452) [ David Kalnischkies ] - * apt-pkg/deb/deblistparser.cc: + * apt-pkg/deb/deblistparser.cc: - only treat the native apt as essential by default (Closes: #669377) * apt-pkg/contrib/fileutl.cc: - redirect stderr from compressors to /dev/null @@ -16,6 +22,12 @@ apt (0.9.2) unstable; urgency=low - actually return to the fallback modifier if we have detected we should for packagenames which look like modifiers (Closes: #669591) + [ Adam Conrad ] + * Set FD_CLOEXEC on history.log's FD (Closes: #610069, LP: #636010) + + [ Thorsten Spindler ] + * apt-pkg/deb/dpkgpm.cc: + - do not crash if (*I).Pkg is NULL (LP: #939867) [ Malcolm Scott ] * apt-pkg/packagemanager.cc: |