summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-10Add tests for sys/socket.hjvoisin
2023-07-10Clean up a bit the macro helljvoisin
2023-07-09Add some malloc annotationsjvoisin
2023-07-09Add some `format` annotationsjvoisin
2023-07-09Move a misplaced #endifjvoisin
2023-07-09Add an __access__ annotation to wchar.hjvoisin
2023-07-09Improve a bit `size_t*size_t` overflow checksjvoisin
2023-07-09Add tests for stdio.hjvoisin
2023-07-09Add tests for unistd.hjvoisin
2023-07-09Fix a couple of warningsjvoisin
2023-07-09Add access annotations to unistd.hjvoisin
2023-07-08Add tests for memcpy overflow/underflowjvoisin
2023-07-05Add access annotations to sys/socket.hjvoisin
2023-07-05Add tests for bzerojvoisin
2023-07-05Add tests for bcopyjvoisin
2023-07-05Cache musl-toolchain downloadjvoisin
2023-07-05Run several clang versions in the CIjvoisin
2023-07-05Don't download musl-cc for clang in the CIjvoisin
2023-06-27Add more access-annotationsjvoisin
2023-06-25Fix the coverage on github pagesjvoisin
2023-06-25Run clang and gcc in the CIjvoisin
2023-06-25Fix clang supportjvoisin
2023-06-25add initial clang supportDaniel Kolesa
2023-06-25avoid __extension__ with clangDaniel Kolesa
It seems useless and triggers 'error: expected external declaration'
2023-06-23Add a test for fgetsjvoisin
2023-06-22Add an annotation for fgetsjvoisin
2023-06-22Add a test for ppolljvoisin
2023-06-22Add a test for `poll`jvoisin
2023-06-22Add tests for mempcpyjvoisin
2023-06-22Add a test for strncatjvoisin
2023-06-22Add tests for stcncpyjvoisin
2023-06-22Add tests for stpcpyjvoisin
2023-06-14Add tests for strncpy and handle overlapping buffers therejvoisin
2023-05-30Add some __attribute__((access…)) annotationsjvoisin
See https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html for details
2023-05-30Add code coveragejvoisin
And make it available at https://jvoisin.github.io/fortify-headers/include/index.html
2023-05-30Add a test for getcwdjvoisin
2023-05-30Add a check for overlapping copies in strcpyjvoisin
2023-05-30Fix inconsistent time_t version of ppolljvoisin
fortify/poll.h includes poll.h, which redirects the ppoll sys call to __ppoll_time64, if the _REDIR_TIME64 macro is 1. Then fortify/poll.h will #undef ppoll and use the 32 bit version, which is inconsistent. Taken from: https://github.com/openwrt/openwrt/pull/12575
2023-04-13Add tests for strcat and strcpyjvoisin
2023-04-13Add tests for memsetjvoisin
2023-04-13Add tests for memmovejvoisin
2023-04-13Add a .gitignorejvoisin
2023-04-13Add a basic testsuitejvoisin
2023-04-13Make use of __builtin_dynamic_object_sizejvoisin
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-04-14Bump to 1.11.1sin
2019-03-13getgroups: do not trap on non-positive gidsetsizeinfo@mobile-stream.com
First, we should never check the size of __s if __l == 0 since the array is not going to be modified in that case. Second, negative __l is a well-defined error case (EINVAL) and we should never trap on a conforming code like this: r = getgroups(-1, NULL); if (r == -1) ... An example of non-desired behaviour for negative __l is the gnulib configure script which checks for getgroups(-1, ...) to catch some ancient FreeBSD kernel bug. The conftest binary traps even on good system (e.g. linux/musl) and the unnecessary getgroups wrapper is enforced for any project that uses gnulib. This patch also changes the size_t cast to avoid the explicit zero extension on systems where size_t differs from unsigned int.
2019-03-07wctomb, wcrtomb: guard slow/trap path with MB_LEN_MAXinfo@mobile-stream.com
This allows the compiler to optimize out the slow/trap path at all for the typical correct code: char buf[MB_LEN_MAX]; r = wctomb(buf, c); The change tries to keep the "unknown object size" case handling in wcrtomb() as is even if it seems redundant and not helping (we copy __buf to possibly undersized __s in any case) and inconsistent with wctomb() (where we let the original library method itself overwrite the possibly undersized __s).
2019-03-07realpath: guard slow/trap path with PATH_MAXinfo@mobile-stream.com
This allows the compiler to optimize out the slow/trap path at all for the typical correct code: char buf[PATH_MAX]; r = realpath(path, buf); The change keeps the "unknown object size" case handling intact.
2019-02-25Bump copyrightsin
2019-02-25Make use of builtins whenever possiblesin