<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg, branch 1.4_beta2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.4_beta2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.4_beta2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-12-08T14:19:30Z</updated>
<entry>
<title>gpgv: Flush the files before checking for errors</title>
<updated>2016-12-08T14:19:30Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-12-06T08:35:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6212ee84a517ed68217429022bd45c108ecf9f85'/>
<id>urn:sha1:6212ee84a517ed68217429022bd45c108ecf9f85</id>
<content type='text'>
This is a follow up to the previous issue where we did not check
if getline() returned -1 due to an end of file or due to an error
like memory allocation, treating both as end of file.

Here we ensure that we also handle buffered writes correctly by
flushing the files before checking for any errors in our error
stack.

Buffered writes themselves were introduced in 1.1.9, but the
function was never called with a buffered file from inside
apt until commit 46c4043d741cb2c1d54e7f5bfaa234f1b7580f6c
which was first released with apt 1.2.10. The function is
public, though, so fixing this is a good idea anyway.

Affected: &gt;= 1.1.9
</content>
</entry>
<entry>
<title>SECURITY UPDATE: gpgv: Check for errors when splitting files (CVE-2016-1252)</title>
<updated>2016-12-08T14:19:21Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-12-05T22:01:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=51be550c5c38a2e1ddfc2af50a9fab73ccf78026'/>
<id>urn:sha1:51be550c5c38a2e1ddfc2af50a9fab73ccf78026</id>
<content type='text'>
This fixes a security issue where signatures of the
InRelease files could be circumvented in a man-in-the-middle
attack, giving attackers the ability to serve any packages
they want to a system, in turn giving them root access.

It turns out that getline() may not only return EINVAL
as stated in the documentation - it might also return
in case of an error when allocating memory.

This fix not only adds a check that reading worked
correctly, it also implicitly checks that all writes
worked by reporting any other error that occurred inside
the loop and was logged by apt.

Affected: &gt;= 0.9.8
Reported-By: Jann Horn &lt;jannh@google.com&gt;
Thanks: Jann Horn, Google Project Zero for reporting the issue
LP: #1647467
</content>
</entry>
<entry>
<title>get pdiff files from the same mirror as the index</title>
<updated>2016-11-24T23:15:13Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-13T01:29:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5832913a49d4f7c75527264a935cc0ce00627f1d'/>
<id>urn:sha1:5832913a49d4f7c75527264a935cc0ce00627f1d</id>
<content type='text'>
In ad9416611ab83f7799f2dcb4bf7f3ef30e9fe6f8 we fall back to asking the
original mirror (e.g. a redirector) if we do not get the expected
result. This works for the indexes, but patches are a different beast
and much simpler. Adding this fallback code here seems like overkill as
they are usually right along their Index file, so actually forward the
relevant settings to the patch items which fixes pdiff support combined
with a redirector and partial mirrors as in such a situation the pdiff
patches would be 404 and the complete index would be downloaded.
</content>
</entry>
<entry>
<title>report apt-key errors via status-fd messages</title>
<updated>2016-11-23T23:21:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-12T22:22:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8e438ede2f179f2f66268308c24d62952ac06fa4'/>
<id>urn:sha1:8e438ede2f179f2f66268308c24d62952ac06fa4</id>
<content type='text'>
We report warnings from apt-key this way already since
29c590951f812d9e9c4f17706e34f2c3315fb1f6, so reporting errors seems like
a good addition. Most of those errors aren't really from apt-key
through, but from the code setting up and actually calling it which used
to just print to stderr which might or might not intermix them with
(other) progress lines in update calls. Having them as proper error
messages in the system means that the errors are actually collected
later on for the list instead of ending up with our relatively generic
but in those cases bogus hint regarding "is gpgv installed?".

The effective difference is minimal as the errors apply mostly to
systems which have far worse problems than a not as nice looking error
message, which makes this pretty hard to test – but at least now the
hint that your system is broken can be read in proper order (= there
aren't many valid cases in which the permissions of /tmp are messed up…).

LP: #1522988
</content>
</entry>
<entry>
<title>skip unconfigure for unconfigured to-be removed pkgs</title>
<updated>2016-11-23T23:21:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-23T22:09:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8e7a99564dd57b0dcb7df47b43e71ccefc8e0ebe'/>
<id>urn:sha1:8e7a99564dd57b0dcb7df47b43e71ccefc8e0ebe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>do not configure unconfigured to be removed packages</title>
<updated>2016-11-23T23:21:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-23T21:17:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bb9c5972524ac5c078fa0f0bc5674c7a0fe01fb4'/>
<id>urn:sha1:bb9c5972524ac5c078fa0f0bc5674c7a0fe01fb4</id>
<content type='text'>
We try to configure all packages at the end which need to be configured,
but that also applies to packages which weren't completely installed
(e.g. maintainerscript failed) we end up removing in this interaction
instead.

APT doesn't perform this explicit configure in the end as it is using
"dpkg --configure --pending", but it does confuse the progress report
and potentially also hook scripts.

Regression-Of: 9ffbac99e52c91182ed8ff8678a994626b194e69
</content>
</entry>
<entry>
<title>don't perform implicit crossgrades involving M-A:same</title>
<updated>2016-11-23T23:21:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-23T18:02:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=53f3fc59f4eb37eea57bbde53fb75f2e15af0378'/>
<id>urn:sha1:53f3fc59f4eb37eea57bbde53fb75f2e15af0378</id>
<content type='text'>
dpkg stumbles over these (#844300) and we haven't dropped 'easier'
removes to be implicit and to be scheduled by dpkg by default so far
so we shouldn't push the decision in such cases to dpkg either.
</content>
</entry>
<entry>
<title>improve arch-unqualified dpkg-progress parsing</title>
<updated>2016-11-23T23:21:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-23T16:32:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4b10240cca0dc0a4e82e42959545d2ae7e622d29'/>
<id>urn:sha1:4b10240cca0dc0a4e82e42959545d2ae7e622d29</id>
<content type='text'>
Our old idea was to look for the first package which would be "touched"
and take this as the package dpkg is talking about, but that is
incorrect in complicated situations like a package upgraded to/from
multiple M-A:same siblings installed.

As we us the progress report to decide what is still needed we have to
be reasonabily right about the package dpkg is talking about, so we jump
to quite a few loops to get it.
</content>
</entry>
<entry>
<title>correct cross &amp; disappear progress detection</title>
<updated>2016-11-23T15:37:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-12T10:32:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dabe9e2482180ada77d2adda2b3c03db22059fb8'/>
<id>urn:sha1:dabe9e2482180ada77d2adda2b3c03db22059fb8</id>
<content type='text'>
Given that we use the progress information to skip over actions dpkg has
already done like not purging a package which was already removed and
had no config files or not acting on disappeared packages and such it is
important that apt and dpkg agree on which states the package has to
pass through.

To ensure that we keep tabs on this in the future a warning is added at
the end if apt hasn't seen all the action it was supposed to see. I
can't wait for the first bugreporters to wonder about this…
</content>
</entry>
<entry>
<title>react to trig-pend only if we have nothing else to do</title>
<updated>2016-11-23T15:37:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-18T11:04:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=066d4a5bab628ef8220971bb5763ff8f3a13de07'/>
<id>urn:sha1:066d4a5bab628ef8220971bb5763ff8f3a13de07</id>
<content type='text'>
If a package is triggered dpkg frequently issues two messages about it
causing us to make a note about it both times which messes up our
planned dpkg actions view. Adding these actions if we have nothing else
planned fixes this and should still be correct as those planned actions
will deal with the triggering just fine and we avoid strange problems
like a package triggered before its removed…
</content>
</entry>
</feed>
