<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fortify-headers, branch 2.3</title>
<subtitle>Standalone portable header-based implementation of FORTIFY_SOURCE=3 
</subtitle>
<id>http://git.dustri.org/fortify-headers/atom?h=2.3</id>
<link rel='self' href='http://git.dustri.org/fortify-headers/atom?h=2.3'/>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/'/>
<updated>2024-05-26T20:19:27Z</updated>
<entry>
<title>Add vasprintf/asprintf</title>
<updated>2024-05-26T20:19:27Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-05-20T12:48:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=1becad43298e74ba73bc66f9d44523e5d121c667'/>
<id>urn:sha1:1becad43298e74ba73bc66f9d44523e5d121c667</id>
<content type='text'>
The only hardening being done here is to set the char** parameter to thos
functions to NULL in case of an error, to prevent it from being used should
people forget to check return values. This is already done on some BSD, as well
as in Rocky Linux.
</content>
</entry>
<entry>
<title>Improve the testsuite reliability wrt. gcc</title>
<updated>2024-05-20T08:22:46Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-05-20T07:38:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=92c611ad8abb146ed548301de8bc011c2b17bccd'/>
<id>urn:sha1:92c611ad8abb146ed548301de8bc011c2b17bccd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add a test</title>
<updated>2024-04-24T16:40:13Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-04-24T16:36:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=3375426d8c18f43f58ab83c261735b04562828ae'/>
<id>urn:sha1:3375426d8c18f43f58ab83c261735b04562828ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix some overlap mismatch</title>
<updated>2024-04-24T15:14:46Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-04-24T15:09:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=a817e1555a755224cacc1cbdeeaefb6a1de606f0'/>
<id>urn:sha1:a817e1555a755224cacc1cbdeeaefb6a1de606f0</id>
<content type='text'>
This was caught by the following test:

```

int main(void) {
    char c[32];
    memcpy(c, c + 16, 16);
}
```

Reported-by: q66
</content>
</entry>
<entry>
<title>Disable pedantic checks by default</title>
<updated>2024-04-24T12:51:19Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-04-24T12:49:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=265fa03fa0c467c9c41d803ebe2a538e758cba20'/>
<id>urn:sha1:265fa03fa0c467c9c41d803ebe2a538e758cba20</id>
<content type='text'>
They can be re-enabled via `PEDANTIC_CHECKS`
</content>
</entry>
<entry>
<title>Relax our checks for memchr on C11 and above</title>
<updated>2024-03-19T17:35:13Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-03-19T17:35:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=8ed72e7c1caa0eb4238e649063c26a11720935de'/>
<id>urn:sha1:8ed72e7c1caa0eb4238e649063c26a11720935de</id>
<content type='text'>
Since C11:

&gt; This function behaves as if it reads the bytes sequentially and stops as soon
as a matching bytes is found: if the array pointed to by ptr is smaller than
count, but the match is found within the array, the behavior is well-defined.

Reported-by: q66
</content>
</entry>
<entry>
<title>Add some NULL-pointers checks</title>
<updated>2024-03-08T15:28:52Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-03-08T15:07:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=140cffbe84a08669d67c3257258d2bb70ff29c3b'/>
<id>urn:sha1:140cffbe84a08669d67c3257258d2bb70ff29c3b</id>
<content type='text'>
See:
- https://www.imperialviolet.org/2016/06/26/nonnull.html
- https://davidben.net/2024/01/15/empty-slices.html
</content>
</entry>
<entry>
<title>Add a .gitattributes file to simplify releases</title>
<updated>2024-03-04T13:12:58Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-03-04T13:12:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=2f60f255af5d615ca31d554035fe8268ecc9825c'/>
<id>urn:sha1:2f60f255af5d615ca31d554035fe8268ecc9825c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Properly check for builtins</title>
<updated>2024-01-13T19:34:19Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2024-01-13T19:34:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=1a8431430ec4b97f0baaf2bf3b385be5f5da08cf'/>
<id>urn:sha1:1a8431430ec4b97f0baaf2bf3b385be5f5da08cf</id>
<content type='text'>
Clang's [documentation](https://clang.llvm.org/docs/LanguageExtensions.html#has-builtin) says:

 &gt; __has_builtin should not be used to detect support for a builtin macro; use #ifdef instead.

So we're now using both, since it's often tedious/non-trivial to find out
what is a macro and what is a compiler builtin, across compilers and C
versions.
</content>
</entry>
<entry>
<title>Re-enable previously disabled overlap checks</title>
<updated>2023-12-28T15:13:37Z</updated>
<author>
<name>jvoisin</name>
</author>
<published>2023-12-27T16:07:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=22a8094b41b2606084dc0c0c70487e5ed0fcb652'/>
<id>urn:sha1:22a8094b41b2606084dc0c0c70487e5ed0fcb652</id>
<content type='text'>
They were previously disabled in 80a83a5
</content>
</entry>
</feed>
