<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libzahl/zahl, branch master</title>
<subtitle>[Stable] Big integer library
</subtitle>
<id>https://git.maandree.se/libzahl/atom?h=master</id>
<link rel='self' href='https://git.maandree.se/libzahl/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/'/>
<updated>2026-02-15T00:47:02Z</updated>
<entry>
<title>fix out of bounds read in zlsb()</title>
<updated>2026-02-15T00:47:02Z</updated>
<author>
<name>Valentina Demiciseaux</name>
<email>vallyyyyy@proton.me</email>
</author>
<published>2026-02-14T23:46:26Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=0121293f8de339d2c6d26da63a92f79cfff1b871'/>
<id>urn:sha1:0121293f8de339d2c6d26da63a92f79cfff1b871</id>
<content type='text'>
prev scales i from num chars -&gt; num bits, then indexes with it, causing
a page fault or reading garbage.  scale i after the read instead.

here is a reproducer

    #include &lt;stdio.h&gt;
    #include "libzahl/zahl.h"

    int
    main(void)
    {
        z_t x;
        zinit(x);
        zsetu(x, 1);

        zlsh(x, x, 2097153);

        printf("used chars:  expect 32769, have %lu\n", x-&gt;used);

        size_t tz = zlsb(x);

        printf("tz:          expect 2097153, have %lu\n", tz);
    }
</content>
</entry>
<entry>
<title>Optimise libzahl_memcpy for clang</title>
<updated>2016-05-07T16:15:59Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-07T16:15:59Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=84ad8821d456e8f7f40df43b7eb7245703004ce7'/>
<id>urn:sha1:84ad8821d456e8f7f40df43b7eb7245703004ce7</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Some small improvements</title>
<updated>2016-05-07T15:22:42Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-07T15:22:42Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=d6f4393542998276250bd3f3519bb824ca4b3d91'/>
<id>urn:sha1:d6f4393542998276250bd3f3519bb824ca4b3d91</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Optimisations</title>
<updated>2016-05-07T01:02:56Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-07T01:02:56Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=fdc75a358e4c20116640c08f4e8ce7a09dc3cebd'/>
<id>urn:sha1:fdc75a358e4c20116640c08f4e8ce7a09dc3cebd</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Make zdiv and zmod (calls zdivmod) inline</title>
<updated>2016-05-06T17:00:44Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-06T17:00:44Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=4e659044778dfd05a5f5d2b41611e7737a0eb825'/>
<id>urn:sha1:4e659044778dfd05a5f5d2b41611e7737a0eb825</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Make zmul and zsqr (calls low-level functions) inline</title>
<updated>2016-05-06T11:48:43Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-06T11:48:43Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=b0e210a02b8576828ac64e8b97bd565fd28c8748'/>
<id>urn:sha1:b0e210a02b8576828ac64e8b97bd565fd28c8748</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Do not use explicit optimisation level on zsave</title>
<updated>2016-05-05T23:51:47Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-05T23:51:47Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=dedfc0dd344e1d3a97dc175b3c5bff23c91783cb'/>
<id>urn:sha1:dedfc0dd344e1d3a97dc175b3c5bff23c91783cb</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Optimisations</title>
<updated>2016-05-05T19:13:16Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-05T19:11:43Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=9437becf6d8aa4d9a3872b2cd6b353dc4c90a1cb'/>
<id>urn:sha1:9437becf6d8aa4d9a3872b2cd6b353dc4c90a1cb</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Optimise and use __ around all compiler extensions</title>
<updated>2016-05-05T14:04:11Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-05T14:04:11Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=683babd645e3a41b26326beea30879ee30920392'/>
<id>urn:sha1:683babd645e3a41b26326beea30879ee30920392</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
<entry>
<title>Rename zahl-{inlines,internals}.h =&gt; zahl/{inlines,internals}.h</title>
<updated>2016-05-05T12:46:02Z</updated>
<author>
<name>Mattias Andrée</name>
<email>maandree@kth.se</email>
</author>
<published>2016-05-05T12:46:02Z</published>
<link rel='alternate' type='text/html' href='https://git.maandree.se/libzahl/commit/?id=35aad695c4b9b9d3440f68f01d870738aea838c1'/>
<id>urn:sha1:35aad695c4b9b9d3440f68f01d870738aea838c1</id>
<content type='text'>
Signed-off-by: Mattias Andrée &lt;maandree@kth.se&gt;
</content>
</entry>
</feed>
