safeclib
safec libc extension with all C11 Annex K functions (by rurban)
copies-and-fills
By simonjhall
safeclib | copies-and-fills | |
---|---|---|
8 | 1 | |
311 | 67 | |
- | - | |
7.0 | 10.0 | |
18 days ago | almost 12 years ago | |
C | Assembly | |
GNU General Public License v3.0 or later | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
safeclib
Posts with mentions or reviews of safeclib.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-22.
-
LLVM's Libc Gets Much Faster memcpy For RISC-V
Of course assembler spezializations are an anti-pattern, because the optimizer should be fixed to do it much better. Better C code is often 2x faster than hand optimized assembler.
Eg my C memcpy with inlined and vectorized clang beats glibc or gcc memcpy in assembler easily. https://github.com/rurban/safeclib/blob/master/tests/perf_me...
-
Site with common coding mistakes that cause security threats with code examples?
+1 This along with https://github.com/rurban/safeclib (and its forks/derivatives).
- Safeclib – C11 Annex K implementation
-
What are the major dialects of C nowadays?
I have yet to look into Annex K. It didn't seem to gain much traction. Some people at Red Hat wrote a field experience report about it. I recently discovered an implementation of Annex K functions that claims to be pretty portable, safeclib.
-
memmove_s?
See my testsuite and remarks at https://github.com/rurban/safeclib/blob/master/doc/libc-overview.md , esp. towards the windows implementation
- Why does Windows 10 run faster than Fedora?
-
A 100LOC C impl of memset, that is faster than glibc's
I do it because nobody else implemented a secure memset. What they call secure is just avoiding that the compiler ignores it. A secure memset also cleans the caches with a memory barrier, so that meltdown cannot read it.
explicit_bzero and it's numerous variants are not only insecure, but also slow. (byte wise!)
Only safelibc has a secure memset_s. https://github.com/rurban/safeclib/blob/master/tests/perf_me...
copies-and-fills
Posts with mentions or reviews of copies-and-fills.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-11-11.
-
A 100LOC C impl of memset, that is faster than glibc's
Can't look right now, but you might not have benchmarked against libc, but against an optimized version included in Raspbian (https://github.com/simonjhall/copies-and-fills). I'm not sure if that's still active in the latest Raspberry Pi OS releases.
What are some alternatives?
When comparing safeclib and copies-and-fills you can also consider the following projects:
memset_benchmark - This repository contains high-performance implementations of memset and memcpy in assembly.
qemu
gcc
libu8ident - unicode security guidelines for identifiers
fancy-memset - small, fast memset based on microsoft's design
fancy-memcmp - small, fast memcmp
libredwg - Official mirror of libredwg. With CI hooks and nightly releases. PR's ok
libnbd
nbdkit