<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/contrib, branch 2.3.8</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.3.8</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.3.8'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2021-03-20T19:33:34Z</updated>
<entry>
<title>srvrec: Keep support for older resolver</title>
<updated>2021-03-20T19:33:34Z</updated>
<author>
<name>Khem Raj</name>
<email>raj.khem@gmail.com</email>
</author>
<published>2021-03-20T19:33:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f98c12b9f04ef3a9daec822c210044095b41a0ac'/>
<id>urn:sha1:f98c12b9f04ef3a9daec822c210044095b41a0ac</id>
<content type='text'>
Some C libraries e.g. musl do not implement the new res_n* APIs
therefore keep the old implementation as fallback and check __RES
version macro to determine the API level

Signed-off-by: Khem Raj &lt;raj.khem@gmail.com&gt;
Cc: Julian Andres Klode &lt;julian.klode@canonical.com&gt;
</content>
</entry>
<entry>
<title>RunScripts: Do not reset SIGQUIT and SIGINT to SIG_DFL</title>
<updated>2021-03-01T20:26:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-03-01T20:26:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8eccb902aa3be22a151943286fb376759a2b3585'/>
<id>urn:sha1:8eccb902aa3be22a151943286fb376759a2b3585</id>
<content type='text'>
This caused python-apt to unset the Python signal handler when running
update or install commands, breaking KeyboardInterrupt amongst possibly
other things.

We do not set those signal handlers in this functions, and the calling
functions restore signal handlers to previous ones.

LP: #1898026
</content>
</entry>
<entry>
<title>configuration: Add missing #include &lt;array&gt;</title>
<updated>2021-02-24T09:47:51Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-02-24T09:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=fb6f4070cdf4531d2105bcf0a42999f69b0bd10b'/>
<id>urn:sha1:fb6f4070cdf4531d2105bcf0a42999f69b0bd10b</id>
<content type='text'>
As user "DaOfficialRolex" on GitHub pointed out:

This is needed to allow for APT on iOS to compile correctly. If not included the two following errors happen while compiling APT.

~/apt/apt-pkg/contrib/configuration.cc:900:44: error: constexpr variable cannot have non-literal type 'const std::array&lt;APT::StringView, 3&gt;'
         constexpr std::array&lt;APT::StringView, 3&gt; magicComments { "clear"_sv, "include"_sv, "x-apt-configure-index"_sv };
                                                  ^
~/apt/apt-pkg/contrib/configuration.cc:900:44: error: implicit instantiation of undefined template 'std::__1::array&lt;APT::StringView, 3&gt;'
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template &lt;class _Tp, size_t _Size&gt; struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
</content>
</entry>
<entry>
<title>Replace PrintStatus with SendMessage usage</title>
<updated>2021-02-04T10:00:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-28T18:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=96dc40b19623621a9cc2c5541fb3adbbceb553b1'/>
<id>urn:sha1:96dc40b19623621a9cc2c5541fb3adbbceb553b1</id>
<content type='text'>
varg API is a nightmare as the symbols seems different on ever other
arch, but more importantly SendMessage does a few checks on the content
of the message and it is all outputted via C++ iostreams and not mixed
in FILE* which is handy for overriding the streams.
</content>
</entry>
<entry>
<title>Avoid undefined pointer arithmetic while growing mmap</title>
<updated>2021-02-04T10:00:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-08T15:07:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f7e6eaf84bebac565f462e2ce48f30808cc771eb'/>
<id>urn:sha1:f7e6eaf84bebac565f462e2ce48f30808cc771eb</id>
<content type='text'>
The undefined behaviour sanitizer complains with:
runtime error: addition of unsigned offset to 0x… overflowed to 0x…

Compilers and runtime do the right thing in any case and it is a
codepath that can (and ideally should) be avoided for speed reasons
alone, but fixing it can't hurt (too much).
</content>
</entry>
<entry>
<title>Avoid overstepping bounds in config file parsing</title>
<updated>2021-02-03T16:43:13Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2021-02-03T16:40:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c4da2ff42da55ffc38c77a9170dc151216d75962'/>
<id>urn:sha1:c4da2ff42da55ffc38c77a9170dc151216d75962</id>
<content type='text'>
Our configuration files are not security relevant, but having a parser
which avoids crashing on them even if they are seriously messed up is
not a bad idea anyway. It is also a good opportunity to brush up the
code a bit avoiding a few small string copies with our string_view.
</content>
</entry>
<entry>
<title>Forbid negative values in unsigned StrToNum explicitly</title>
<updated>2021-02-03T16:36:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-13T07:07:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e0743a85c5f5f2f83d91c305450e8ba192194cd8'/>
<id>urn:sha1:e0743a85c5f5f2f83d91c305450e8ba192194cd8</id>
<content type='text'>
strtoul(l) surprises us with parsing negative values which should not
exist in the places we use to parse them, so we can just downright
refuse them rather than trying to work with them by having them promoted
to huge positive values.
</content>
</entry>
<entry>
<title>Remove Word size limit from ParseQuote and CWord</title>
<updated>2021-02-03T16:36:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-12-03T10:12:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6630c3e5b6af77205b043208ef15720cf270075c'/>
<id>urn:sha1:6630c3e5b6af77205b043208ef15720cf270075c</id>
<content type='text'>
It isn't super likely that we will encounter such big words in the real
world, but we can return arbitrary length, so lets just do that as that
also means we don't have to work with a second buffer.
</content>
</entry>
<entry>
<title>Don't parse \x and \0 past the end in DeEscapeString</title>
<updated>2021-02-03T16:36:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-12-03T09:44:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ed192f410da36aedf5e54bb3f967e6613ab4bb51'/>
<id>urn:sha1:ed192f410da36aedf5e54bb3f967e6613ab4bb51</id>
<content type='text'>
This has no attack surface though as the loop is to end very soon anyhow
and the method only used while reading CD-ROM mountpoints which seems
like a very unlikely attack vector…
</content>
</entry>
<entry>
<title>Fix incorrect base64 encoding due to int promotion</title>
<updated>2021-02-03T16:36:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-12-03T09:41:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=10f13938bbf1474451fadcd62e1c31c4b5f5b3d7'/>
<id>urn:sha1:10f13938bbf1474451fadcd62e1c31c4b5f5b3d7</id>
<content type='text'>
For \xff and friends with the highest bit set and hence being a negative
value on signed char systems the wrong encoding is produced as we run
into undefined behaviour accessing negative array indexes.
We can avoid this problem simply by using an unsigned data type.
</content>
</entry>
</feed>
