| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-07-10 | prefix special defines with FORTIFY_ | psykose | |
| just in case, and because 'PEDANTIC_CHECKS' is a really generic name | |||
| 2024-04-24 | Fix some overlap mismatch | jvoisin | |
| This was caught by the following test: ``` int main(void) { char c[32]; memcpy(c, c + 16, 16); } ``` Reported-by: q66 | |||
| 2024-04-24 | Disable pedantic checks by default | jvoisin | |
| They can be re-enabled via `PEDANTIC_CHECKS` | |||
| 2024-03-19 | Relax our checks for memchr on C11 and above2.2 | jvoisin | |
| 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-08 | Add some NULL-pointers checks | jvoisin | |
| See: - https://www.imperialviolet.org/2016/06/26/nonnull.html - https://davidben.net/2024/01/15/empty-slices.html | |||
| 2023-12-28 | Re-enable previously disabled overlap checks | jvoisin | |
| They were previously disabled in 80a83a5 | |||
| 2023-12-27 | Improve __fh_overlap implementation | jvoisin | |
| 2023-12-27 | Don't check for overlapping in strncpy/stpncpy for now | jvoisin | |
| 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-18 | fix typo for __builtin_memcpy | psykose | |
| 2023-12-16 | Disable str(r)chr hardening | q66 | |
| It's UB to subtract null pointers, which these potentially may be. It also makes python test suite fail. | |||
| 2023-12-15 | Rename some macros to be more namespace-friendly | q66 | |
| 2023-12-15 | Remove superfluous includes | jvoisin | |
| This should fix #32 | |||
| 2023-09-30 | Fix a typo | jvoisin | |
| 2023-09-30 | Add `strlen` | jvoisin | |
| 2023-09-27 | Add an option to make use of compiler-provided _chk builtins | jvoisin | |
| 2023-09-22 | Add more __diagnose_as_builtin annotations | jvoisin | |
| 2023-09-21 | Properly enable diagnose_as_builtin attribute | jvoisin | |
| 2023-09-20 | Add tests for compile-time errors | jvoisin | |
| 2023-09-20 | Replace a strlen+condition with strnlen | jvoisin | |
| 2023-09-11 | Factorize overlap checks into a macro | jvoisin | |
| 2023-08-21 | Make use of __diagnose_if | jvoisin | |
| 2023-08-20 | Make use of __diagnose_as_builtin | jvoisin | |
| 2023-08-20 | Add hardening for strrchr | jvoisin | |
| 2023-08-20 | Add hardening for strchr | jvoisin | |
| 2023-08-20 | Remove memrchr hardening for now | jvoisin | |
| It doesn't play nice with gcc. | |||
| 2023-08-03 | Add hardening for memchr and memrchr | jvoisin | |
| 2023-06-27 | Add more access-annotations | jvoisin | |
| 2023-06-25 | add initial clang support | Daniel Kolesa | |
| 2023-06-25 | avoid __extension__ with clang | Daniel Kolesa | |
| It seems useless and triggers 'error: expected external declaration' | |||
| 2023-06-22 | Add a test for strncat | jvoisin | |
| 2023-06-22 | Add tests for stcncpy | jvoisin | |
| 2023-06-22 | Add tests for stpcpy | jvoisin | |
| 2023-06-14 | Add tests for strncpy and handle overlapping buffers there | jvoisin | |
| 2023-05-30 | Add some __attribute__((access…)) annotations | jvoisin | |
| See https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html for details | |||
| 2023-05-30 | Add a check for overlapping copies in strcpy | jvoisin | |
| 2023-04-13 | Make use of __builtin_dynamic_object_size | jvoisin | |
| GCC and Clang provide __builtin_dynamic_object_size (see documentation: https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html), so we should make use of it when its available. | |||
| 2019-02-25 | Make use of builtins whenever possible | sin | |
| 2018-07-24 | Don't use __extension__ in C++ code | A. Wilcox | |
| A few important notes: * __extension__ is a GNU C "alternate" keyword, not a C++ keyword.[1] * __extension__ is designed to work on "expressions"; it does work on #include_next in C mode, but it has no effect in C++ mode; the warning will still appear, if enabled, even with __extension__ preceding #include_next. This is because #include_next is not considered an expression in C++, so the compiler attaches __extension__ to the first expression of the header. All of this leads us to a build failure while building at least all Mozilla software. Moz has an alternate -isystem dir searched before /usr/include that overrides some headers, including <features.h>. The first statement in each of these headers is a #pragma, and since __extension__ is looking for an expression, and #pragma is a "null" expression, we end up with the following error: dist/system_wrappers/features.h:1:9: error: '#pragma' is not allowed here Since __extension__ has no effect on #include_next in C++ mode anyway, and since it can cause breakage, this commit omits __extension__ in C++ mode. [1]: https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gcc/Alternate-Keywords.html | |||
| 2016-09-10 | Bump copyright year | sin | |
| 2015-07-15 | Fix stpncpy() check | sin | |
| Do not crash unless the overflow would happen. | |||
| 2015-06-25 | Add __extension__ mark to include_next to silence -pedantic | Steven Barth | |
| Signed-off-by: Steven Barth <steven@midlink.org> | |||
| 2015-06-03 | Use namespace-safe macro, param and variable names | Trutz Behn | |
| 2015-05-13 | Add LICENSE header | sin | |
| 2015-05-13 | Add fortify_fn() helper in fortify-headers.h | sin | |
| 2015-04-08 | Check for out of bound reads for memcpy, memmove and mempcpy() | sin | |
| 2015-03-15 | Hide stpcpy() and stpncpy() under feature test macros | sin | |
| 2015-03-14 | Use __typeof__ to in part avoid replicating function types | Trutz Behn | |
| 2015-03-14 | Explicitly cast pointers to satisfy C++ code | sin | |
| 2015-03-14 | Add __artificial__ to aid in debugging | sin | |
| 2015-03-13 | Restore C++ support | sin | |
