<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libc/string/explicit_bzero.c, branch OPENBSD_7_9_BASE</title>
<subtitle>A mirror of https://github.com/libressl/openbsd.git
</subtitle>
<id>https://git.lua4.win/openbsd/atom?h=OPENBSD_7_9_BASE</id>
<link rel='self' href='https://git.lua4.win/openbsd/atom?h=OPENBSD_7_9_BASE'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/'/>
<updated>2015-08-31T02:53:57+00:00</updated>
<entry>
<title>Add framework for resolving (pun intended) libc namespace issues, using</title>
<updated>2015-08-31T02:53:57+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2015-08-31T02:53:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=c1ccbe216c72b17e063c4c16fa4904d87d295c99'/>
<id>urn:sha1:c1ccbe216c72b17e063c4c16fa4904d87d295c99</id>
<content type='text'>
wrapper .h files and asm labels to let internal calls resolve directly and
not be overridable or use the PLT.  Then, apply that framework to most of
the functions in stdio.h, string.h, err.h, and wchar.h.  Delete the
should-have-been-hidden-all-along _v?(err|warn)[cx]? symbols while here.

tests clean on i386, amd64, sparc64, powerpc, and mips64

naming feedback from kettenis@ and millert@
ok kettenis@
</content>
</entry>
<entry>
<title>Protect explicit_bzero() from link-time optimization</title>
<updated>2014-06-21T02:34:26+00:00</updated>
<author>
<name>matthew</name>
<email></email>
</author>
<published>2014-06-21T02:34:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=9c52c243dba540e16f6f2a3f88131dd7f668f419'/>
<id>urn:sha1:9c52c243dba540e16f6f2a3f88131dd7f668f419</id>
<content type='text'>
Modern compiler toolchains are capable of optimizing even across
translation unit boundaries, so simply moving the memory clearing into
a separate function is not guaranteed to clear memory.

To avoid this, we take advantage of ELF weak symbol semantics, and
insert a call to an empty, weakly named function.  The semantics of
calling this function aren't determinable until load time, so the
compiler and linker need to keep the memset() call.

There are still ways a toolchain might defeat this trick (e.g.,
optimistically expecting the weak symbol to not be overloaded, and
only calling memset() if it is; promoting weak symbols to strong
symbols at link-time when emitting a static binary because they won't
be interposed; implementing load-time optimizations).  But at least
for the foreseeable future, these seem unlikely.

ok deraadt
</content>
</entry>
<entry>
<title>mop up ifndef KERNEL goo; ok miod</title>
<updated>2014-06-10T04:17:37+00:00</updated>
<author>
<name>deraadt</name>
<email></email>
</author>
<published>2014-06-10T04:17:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=a13b202796a212c4c4e553e85d8bad24bbdffe07'/>
<id>urn:sha1:a13b202796a212c4c4e553e85d8bad24bbdffe07</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add explicit_bzero to libc. implementation subject to change, but start</title>
<updated>2014-01-22T21:06:45+00:00</updated>
<author>
<name>tedu</name>
<email></email>
</author>
<published>2014-01-22T21:06:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=4e1aa1ee5b941edcc77a1abbb462455376b314f0'/>
<id>urn:sha1:4e1aa1ee5b941edcc77a1abbb462455376b314f0</id>
<content type='text'>
the ball rolling. ok deraadt.
</content>
</entry>
</feed>
