summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-05-26Add vasprintf/asprintf2.3jvoisin
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.
2024-05-20Improve the testsuite reliability wrt. gccjvoisin
2024-04-24Add a testjvoisin
2024-04-24Fix some overlap mismatchjvoisin
This was caught by the following test: ``` int main(void) { char c[32]; memcpy(c, c + 16, 16); } ``` Reported-by: q66
2024-04-24Disable pedantic checks by defaultjvoisin
They can be re-enabled via `PEDANTIC_CHECKS`
2024-03-19Relax our checks for memchr on C11 and above2.2jvoisin
Since C11: > 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
2024-03-08Add some NULL-pointers checksjvoisin
See: - https://www.imperialviolet.org/2016/06/26/nonnull.html - https://davidben.net/2024/01/15/empty-slices.html
2024-03-04Add a .gitattributes file to simplify releasesjvoisin
2024-01-13Properly check for builtinsjvoisin
Clang's [documentation](https://clang.llvm.org/docs/LanguageExtensions.html#has-builtin) says: > __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.
2023-12-28Re-enable previously disabled overlap checksjvoisin
They were previously disabled in 80a83a5
2023-12-28Make the CI fail when the testsuite failsjvoisin
2023-12-28Build with USE_NATIVE_CHK for clang and gccjvoisin
2023-12-27Improve __fh_overlap implementationjvoisin
2023-12-27Don't check for overlapping in strncpy/stpncpy for nowjvoisin
They check overlap across the whole range of the given length, but the given length is not what will actually be copied, rather it's the maximum length (if src is shorter, only length of src will be copied). This triggers false positives and traps where it shouldn't (e.g. in ICU tests). Reported-by: q66
2023-12-18fix typo for __builtin_memcpypsykose
2023-12-16Ditto for strrchrq66
2023-12-16Disable strchr tests since strchr hardening is disabledq66
2023-12-16Also handle SIGTRAP in testsq66
SIGILL is not the only possible trap handler. On non-x86 archs this is not the case for instance.
2023-12-16Bump to 2.12.1q66
2023-12-16Disable str(r)chr hardeningq66
It's UB to subtract null pointers, which these potentially may be. It also makes python test suite fail.
2023-12-15Rename some macros to be more namespace-friendlyq66
2023-12-15Fix missing } for extern "C" when using clangq66
2023-12-15Move wctomb to stdlib.h and disable it for nowq66
2023-12-15Guard some conditional stdio APIs with the right macrosq66
Fixes https://github.com/jvoisin/fortify-headers/issues/34
2023-12-15Do not use static inline for C++ to avoid ODR violationsq66
Fixes https://github.com/jvoisin/fortify-headers/issues/31
2023-12-15Add missing include in select.hq66
2023-12-15Remove superfluous includesJulien Voisin
2023-12-15Remove superfluous includesjvoisin
This should fix #32
2023-12-12Bump to 2.02.0jvoisin
2023-12-10Add gcc 13 to the CIjvoisin
2023-12-08Add a check in the CI to keep the readme up to datejvoisin
2023-12-08Update the readme to point to upstream git repojvoisin
2023-12-07Add qsortjvoisin
2023-12-07Add a global test to ensure that all headers are compilingjvoisin
2023-12-06Work around an erroneous `-Wformat-nonliteral` bug in gccjvoisin
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110834 Reported-by: ksperling-apple
2023-12-05Update the READMEjvoisin
2023-11-16Add hardening for select()Julien Voisin
2023-11-16Add hardening for select()jvoisin
This is unlikely to be used, since fd_set is usually manipulated by macros, but it doesn't hurt to add a simple comparison.
2023-11-01Add support for FD_ISSETjvoisin
2023-10-16Add a check about redefined macrosjvoisin
2023-10-01Add vfprintf`jvoisin
2023-10-01Add `fprintf`jvoisin
2023-09-30Add `vprintf`jvoisin
2023-09-30Fix a typojvoisin
2023-09-30Add `strlen`jvoisin
2023-09-29Make use of the native _chk variants for realjvoisin
2023-09-28Add `printf` hardeningjvoisin
2023-09-27Add support for more builtin compiler provided _chk variantsjvoisin
2023-09-27Add an option to make use of compiler-provided _chk builtinsjvoisin
2023-09-22Add more __diagnose_as_builtin annotationsjvoisin