<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/contrib/hashes.cc, branch 2.3.1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.3.1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.3.1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2020-12-04T22:16:04Z</updated>
<entry>
<title>HexDigest: Silence -Wstringop-overflow</title>
<updated>2020-12-04T22:16:04Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-12-04T22:16:04Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d63772845a28a08ea9c812ad8ac281cf9e0ae12a'/>
<id>urn:sha1:d63772845a28a08ea9c812ad8ac281cf9e0ae12a</id>
<content type='text'>
The compiler does not know that the size is small and thinks we might
be doing a stack buffer overflow of the vla:

    Add APT_ASSUME macro and silence -Wstringop-overflow in HexDigest()

    The compiler does not know that the size of a hash is at most 512 bit,
    so tell it that it is.

    ../apt-pkg/contrib/hashes.cc: In function ‘std::string HexDigest(gcry_md_hd_t, int)’:
    ../apt-pkg/contrib/hashes.cc:415:21: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
      415 |    Result[(Size)*2] = 0;
          |    ~~~~~~~~~~~~~~~~~^~~
    ../apt-pkg/contrib/hashes.cc:414:9: note: at offset [-9223372036854775808, 9223372036854775807] to an object with size at most 4294967295 declared here
      414 |    char Result[((Size)*2) + 1];
          |         ^~~~~~

Fix this by adding a simple assertion. This generates an extra two
instructions in the normal code path, so it's not exactly super costly.
</content>
</entry>
<entry>
<title>Initialize libgcrypt on first use</title>
<updated>2020-02-25T18:07:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-02-25T18:03:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=65b77c941780c8e1819f527879b0b8e2642839dd'/>
<id>urn:sha1:65b77c941780c8e1819f527879b0b8e2642839dd</id>
<content type='text'>
This is not supposed to be done this way, but frankly, since we
abstract away the backend, there's not much else we can do here.

Closes: #949074
</content>
</entry>
<entry>
<title>Remove code tagged APT_PKG_590, add some missing includes</title>
<updated>2020-02-18T11:48:38Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-02-18T11:48:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e8016805b87bead8eb3dff0d0559c5d9590b721b'/>
<id>urn:sha1:e8016805b87bead8eb3dff0d0559c5d9590b721b</id>
<content type='text'>
Remove all code scheduled to be removed after 5.90, and fix
files to include files they previously got from hashes.h
including more headers.
</content>
</entry>
<entry>
<title>Convert users of {MD5,SHA1,SHA256,SHA512}Summation to use Hashes</title>
<updated>2020-01-14T12:10:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-01-07T19:36:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=79de3008ebfc6b4a5dd32e9de1d19788da0b885d'/>
<id>urn:sha1:79de3008ebfc6b4a5dd32e9de1d19788da0b885d</id>
<content type='text'>
This makes use of the a function GetHashString() that returns
the specific hash string. We also need to implement another overload
of Add() for signed chars with sizes, so the existing users do not
require reinterpret_cast everywhere.
</content>
</entry>
<entry>
<title>Raise buffer size for Hashes::AddFD() from 4 KiB to 64 KiB</title>
<updated>2020-01-14T12:10:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-01-07T18:55:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b350560e34a369ef7610f9fceeffb00660209390'/>
<id>urn:sha1:b350560e34a369ef7610f9fceeffb00660209390</id>
<content type='text'>
Move APT_BUFFER_SIZE to macros.h and re-use it in hashes,
this also might speed up stuff, the motivation for using
64 KiB buffers in fileutl.cc was precisely that after all.
</content>
</entry>
<entry>
<title>hashes: Use Libgcrypt for hashing purposes</title>
<updated>2020-01-14T12:10:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-01-07T18:21:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=814ffcfaf34ad1d35e397eeaaafefbf03faed9cf'/>
<id>urn:sha1:814ffcfaf34ad1d35e397eeaaafefbf03faed9cf</id>
<content type='text'>
Switch the code of the Hashes class to use libgcrypt, which allows
us to use hardware-accelerated implementations of SHA1 and friends.
</content>
</entry>
<entry>
<title>Apply various suggestions by cppcheck</title>
<updated>2019-07-08T13:51:17Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2019-07-08T13:48:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2b734a7ec429825c7007c1093883229e069d36c7'/>
<id>urn:sha1:2b734a7ec429825c7007c1093883229e069d36c7</id>
<content type='text'>
Reported-By: cppcheck
</content>
</entry>
<entry>
<title>hashes: Remove deprecated functions</title>
<updated>2019-02-26T15:31:20Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-02-26T11:57:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f53a120320cd09d572658d424badc5485f1b9182'/>
<id>urn:sha1:f53a120320cd09d572658d424badc5485f1b9182</id>
<content type='text'>
This keeps the members in the class, but makes them private. We
want to migrate to libgcrypt eventually, since we already use
libgcrypt through gpgv anyway.
</content>
</entry>
<entry>
<title>Use std::to_string() for HashStringList::FileSize() getter</title>
<updated>2019-02-04T14:29:09Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2019-01-04T19:48:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=780858355914c64793f11860490603c5131c35f1'/>
<id>urn:sha1:780858355914c64793f11860490603c5131c35f1</id>
<content type='text'>
This slightly improves performance, as std::to_string() (as in gcc's
libstdc++) avoids a heap allocation. This is surprisingly performance
critical code, so we might want to improve things further in 1.9
by manually calculating the string - that would also get rid of issues
with locales changing string formatting, if any.
</content>
</entry>
<entry>
<title>Remove obsolete RCS keywords</title>
<updated>2018-05-07T11:41:31Z</updated>
<author>
<name>Guillem Jover</name>
<email>guillem@debian.org</email>
</author>
<published>2018-05-06T20:32:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=164f1b78d1849a0f33df7352875f86e28f5de06a'/>
<id>urn:sha1:164f1b78d1849a0f33df7352875f86e28f5de06a</id>
<content type='text'>
Prompted-by: Jakub Wilk &lt;jwilk@debian.org&gt;
</content>
</entry>
</feed>
