<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fortify-headers/include, branch 0.6</title>
<subtitle>Standalone portable header-based implementation of FORTIFY_SOURCE=3 
</subtitle>
<id>http://git.dustri.org/fortify-headers/atom?h=0.6</id>
<link rel='self' href='http://git.dustri.org/fortify-headers/atom?h=0.6'/>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/'/>
<updated>2015-06-04T17:52:50Z</updated>
<entry>
<title>Use the __inline__ keyword instead of __inline to avoid breakage</title>
<updated>2015-06-04T17:52:50Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-06-04T13:01:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=4cdac9cbdaa01f884e0e8b3f947b7f0cb1170729'/>
<id>urn:sha1:4cdac9cbdaa01f884e0e8b3f947b7f0cb1170729</id>
<content type='text'>
Newer compilers default to GNU11, a C11 dialect. Some software however
is unprepared for this or has wrong compatibility checks. What happens
is that some software will for compatibility with C89

  #define inline

before inclusion of a standard header, which is undefined behaviour in
C99 and above (C99/C11 7.1.2/4), as inline is a keyword.

If any libc headers that are then included via #include_next provide an
__inline macro definition (current musl does this if C++ or C99 and
above is detected) like the following

  #define __inline inline

this results in any __inline token to be preprocessed away.

This breaks use of __builtin_va_arg_pack() in our stdio.h at
compile-time as it can only be used in always inlined functions. The
function attributes __always_inline__ and __gnu_inline__ themselves
require an inline specifier on the function to be applied.
</content>
</entry>
<entry>
<title>Use namespace-safe macro, param and variable names</title>
<updated>2015-06-03T17:55:35Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-06-03T17:27:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=1cd5461a5375207602f2cbdfd9a50a9b751cb7c8'/>
<id>urn:sha1:1cd5461a5375207602f2cbdfd9a50a9b751cb7c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix usage of __USER_LABEL_PREFIX__</title>
<updated>2015-06-03T07:33:32Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-06-02T19:33:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=a9ee1d2743acb0b2903db87c0a241c0a569cfc4e'/>
<id>urn:sha1:a9ee1d2743acb0b2903db87c0a241c0a569cfc4e</id>
<content type='text'>
The predefined __USER_LABEL_PREFIX__ macro if it is non-empty contains
an identifier, not a string literal, thus it needs to be stringified.
</content>
</entry>
<entry>
<title>Fix return-type of fortified FD_CLR and FD_SET</title>
<updated>2015-05-21T09:10:17Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-05-20T20:09:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=720c4f7414c3c3d980de8e6ddbc0f608d3e9050d'/>
<id>urn:sha1:720c4f7414c3c3d980de8e6ddbc0f608d3e9050d</id>
<content type='text'>
POSIX specifies them to have return-type void, not int.
</content>
</entry>
<entry>
<title>Wrap some overly long lines</title>
<updated>2015-05-13T11:18:35Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-05-13T11:18:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=50e37c7f766ba94f42993e14bb3207807ff14b30'/>
<id>urn:sha1:50e37c7f766ba94f42993e14bb3207807ff14b30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add LICENSE header</title>
<updated>2015-05-13T11:15:36Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-05-13T11:15:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=07adb509146e4185b9b7587baad26cdfb766c67e'/>
<id>urn:sha1:07adb509146e4185b9b7587baad26cdfb766c67e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add fortify_fn() helper in fortify-headers.h</title>
<updated>2015-05-13T11:05:29Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-05-13T11:04:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=158782b3bb791eae3c97947944c7023452bfbc96'/>
<id>urn:sha1:158782b3bb791eae3c97947944c7023452bfbc96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Minor style fix</title>
<updated>2015-05-07T17:04:01Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-05-07T17:04:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=316a48653315b4bc36d8c50b542471b18441c9d5'/>
<id>urn:sha1:316a48653315b4bc36d8c50b542471b18441c9d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix realpath when stdlib.h is included before limits.h</title>
<updated>2015-05-07T14:02:11Z</updated>
<author>
<name>Natanael Copa</name>
</author>
<published>2015-05-07T12:50:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=c2bb9e106a32619726cfc5052a1509e96b90de9f'/>
<id>urn:sha1:c2bb9e106a32619726cfc5052a1509e96b90de9f</id>
<content type='text'>
If program includes stdlib.h before limits.h without _XOPEN_SOURCE,
_GNU_SOURCE or _BSD_SOURCE explicitly set, then will it always trigger
the trap with musl libc.

This is becase stdlib.h will pull in features.h which will set
_GNU_SOURCE. This means that the fortify stdlib.h will not include
limits.h but it will still trigger the fortified realpath(), but without
PATH_MAX set.

We fix this by including system stdlib.h before testing if limits.h
should be included.

Since PATH_MAX is known at compile time we can also error at compile
time, instead of compiling a broken realpath().
</content>
</entry>
<entry>
<title>Add read checks for bcopy()</title>
<updated>2015-04-08T14:25:47Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-04-08T14:25:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=c7e82d4863992c2f3bbb6f5a31fa8e5fd0e1643f'/>
<id>urn:sha1:c7e82d4863992c2f3bbb6f5a31fa8e5fd0e1643f</id>
<content type='text'>
</content>
</entry>
</feed>
