Michael Vogt [Thu, 19 Apr 2012 08:54:44 +0000 (10:54 +0200)]
* 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)
* apt-pkg/packagemanager.cc:
- recheck all dependencies if we changed a package in SmartConfigure
as this could break an earlier dependency (LP: #940396)
* apt-pkg/packagemanager.cc:
- fix bug in predepends handling - ensure that packages that needs
unpackaging are unpacked before they are configured (LP: #927993)
[ Julian Andres Klode ]
* apt-pkg/deb/deblistparser.cc:
- Set the Essential flag on APT instead of only Important
* apt-pkg/packagemanager.cc:
- Do not use immediate configuration for packages with the Important flag
* Treat the Important flag like the Essential flag with those differences:
- No Immediate configuration (see above)
- Not automatically installed during dist-upgrade
- No higher score for installation ordering
Michael Vogt [Tue, 6 Mar 2012 13:06:38 +0000 (14:06 +0100)]
* apt-pkg/packagemanager.cc:
- fix bug in predepends handling - ensure that packages that needs
unpackaging are unpacked before they are configured (LP: #927993)
* Treat the Important flag like the Essential flag with two differences:
- No Immediate configuration (see above)
- Not automatically installed during dist-upgrade
as we parse datestrings from external sources a lot specify the length
of the integer fields as well to avoid crashes in scanf as cppchecks warns:
"(warning) scanf without field width limits can crash with huge input data"
fix "(style) Statements following return, break, continue, goto or throw
will never be executed." from cppcheck. The fd was closed only after a
return, so invert the order of lines and be happy
* apt-pkg/acquire-item.cc:
- remove 'old' InRelease file if we can't get a new one before
proceeding with Release.gpg to avoid the false impression of a still
trusted repository by a (still present) old InRelease file.
Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214)
Effected are all versions >= 0.8.11
Possible attack summary:
- Attacker needs to find a user which has run at least one successful
'apt-get update' against an archive providing InRelease files.
- Create a Packages file with his preferred content.
- Attacker then prevents the download of InRelease, Release and
Release.gpg (alternatively he creates a valid Release file and sends
this, the other two files need to be missing either way).
- User updates against this, getting the modified Packages file without
any indication of being unsigned (beside the "Ign InRelease" and
"Ign Release.gpg" in the output of 'apt-get update').
=> deb files from this source are considered 'trusted' (and therefore the
user isn't asked for an additional confirmation before install)
Michael Vogt [Fri, 2 Mar 2012 21:01:51 +0000 (22:01 +0100)]
* apt-pkg/packagemanager.cc:
- when calculating pre-dependencies ensure that both unpack and
configure are considered (instead of only configure) LP: #927993
* cmdline/apt-get.cc:
- if a package can't be removed as it is not installed, suggest to
the user an (installed) multiarch silbing with 'Did you mean?'
* apt-pkg/acquire-item.cc:
- drop support for i18n/Index file (introduced in 0.8.11) and use
the Release file instead to get the Translations (Closes: #649314)
* ftparchive/writer.cc:
- add 'Translation-*' to the default patterns
i18n/Index was never used outside debian - and even here it isn't used
consistently as only 'main' has such a file. As the Release file now
includes the Translation-* files we therefore drop support for i18n/Index.
A version supporting it was never part of a debian release and still
supporting it would mean that we get 99% of the time a 404 as response
to the request anyway and confuse archive maintainers who want to
provide all files APT tries to acquire.
Fix the testcases to work with and configure dpkg correctly in a
multi-arch environment
It's not a complete and the "fixed" test is fixed more like a hack
as we have communication problems with dpkg if dpkg and APT disagree
on the interpretation of the native architecture, see also:
http://lists.debian.org/debian-dpkg/2012/02/msg00051.html
* methods/http{s,}.cc:
- if a file without an extension is requested send an 'Accept: text/*'
header to avoid that the server chooses unsupported compressed files
in a content-negotation attempt (Closes: #657560)
Colin Watson [Sun, 29 Jan 2012 13:47:34 +0000 (14:47 +0100)]
* apt-pkg/algorithms.cc:
- use a signed int instead of short for score calculation as upgrades
become so big now that it can overflow (Closes: #657732, LP: #917173)
Colin Watson [Sun, 29 Jan 2012 12:53:25 +0000 (13:53 +0100)]
* apt-pkg/algorithms.cc:
- don't break out of the main-resolver loop for Breaks to deal with all
of them in a single iteration (Closes: #657695, LP: #922485)
Pino Toscano [Fri, 20 Jan 2012 00:34:31 +0000 (01:34 +0100)]
* test/libapt/globalerror_test.cc:
- errno 0 has a different strerror on hurd, so generate the expected
message dynamically instead of hardcoding 'Success' (Closes: #656530)
* methods/https.cc:
- use curls list append instead of appending Range and If-Range by hand
which generates malformed requests, thanks Mel Collins for the hint!
(Closes: #646381)
* apt-pkg/cacheiterators.h:
- return the correct version arch for all+foreign, too
The flag is interpreted at a few other places in different styles so
this commit ensures that the flag check is consistent everywhere
(checking for Same in flag style is a bit too much as it isn't used
in combination with others anyway, but who knows and just for
consistency)
Michael Vogt [Thu, 19 Jan 2012 12:46:09 +0000 (13:46 +0100)]
* apt-pkg/deb/dpkgpm.cc:
- redirect out/input of dpkg --assert-multi-arch to /dev/null
- if multi-arch is detected ensure that pkg:all is reported as pkg:all
Michael Vogt [Wed, 18 Jan 2012 09:27:15 +0000 (10:27 +0100)]
* apt-pkg/contrib/fileutl.h:
- store the offset in the internal fd before calculate size of
the zlib-handled file to jump back to this place again
* apt-pkg/contrib/fileutl.h: