standalone fortify-source implementation
git clone git://
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2019-04-14 08:25Bump to 1.1sin1+1-1
2019-03-13 12:55getgroups: do not trap on non-positive gidsetsizeinfo@mobile-stream.com1+1-1
2019-03-06 13:28wctomb, wcrtomb: guard slow/trap path with MB_LEN_MAXinfo@mobile-stream.com1+5-6
2019-03-06 13:28realpath: guard slow/trap path with PATH_MAXinfo@mobile-stream.com1+3-5
2019-02-25 13:22Bump copyrightsin1+1-1
2019-02-25 13:01Make use of builtins whenever possiblesin2+3-3
2018-07-24 10:01Bump to 1.0sin1+1-1
2018-06-23 22:57Don't use __extension__ in C++ codeA. Wilcox8+24-0
2017-08-22 10:38Bump to 0.9sin1+1-1
2017-08-22 10:31Don't trap if an encoding error occurs in wcrtomb()sin1+3-1
2016-09-10 11:54Bump copyright yearsin11+11-11
2016-07-14 15:09Bump to 0.8sin1+1-1
2016-07-14 14:45Only include limits.h when actually usedNatanael Copa1+1-1
2015-07-24 13:29Bump to 0.7sin1+1-1
2015-07-16 10:45Only crash on overflow for realpath()sin1+11-3
2015-07-15 16:02Fix stpncpy() checksin1+1-1
2015-07-15 15:05Fix confstr() checksin1+3-2
2015-07-15 14:53Fix wcrtomb() checksin1+13-2
2015-06-24 18:13Add __extension__ mark to include_next to silence -pedanticSteven Barth8+10-0
2015-06-22 12:36unistd: fix signed / unsigned comparison in getgroupsSteven Barth1+1-1
2015-06-17 15:37Bump to 0.6sin1+1-1
2015-06-04 13:01Use the __inline__ keyword instead of __inline to avoid breakageTrutz Behn2+3-3
2015-06-03 17:27Use namespace-safe macro, param and variable namesTrutz Behn10+291-291
2015-06-02 19:33Fix usage of __USER_LABEL_PREFIX__Trutz Behn1+3-1
2015-05-29 11:38Bump to 0.5sin1+1-1
2015-05-20 20:09Fix return-type of fortified FD_CLR and FD_SETTrutz Behn1+4-4
2015-05-19 09:22Be less verbose in READMEsin1+0-3
2015-05-13 11:18Wrap some overly long linessin1+8-4
2015-05-13 11:15Add LICENSE headersin10+150-0
2015-05-13 11:04Add fortify_fn() helper in fortify-headers.hsin9+135-230
2015-05-07 17:04Minor style fixsin1+1-1
2015-05-07 12:50fix realpath when stdlib.h is included before limits.hNatanael Copa1+3-3
2015-04-08 14:25Add read checks for bcopy()sin1+5-4
2015-04-08 14:18Check for out of bound reads for memcpy, memmove and mempcpy()sin1+47-44
2015-04-06 09:06Bump to 0.4sin1+1-1
2015-04-01 16:49Update README againsin1+3-0
2015-04-01 16:46Update READMEsin1+4-3
2015-04-01 11:41Add feature-test guards for mbsnrtowcs() and wcsnrtombs()sin1+8-2
2015-03-24 12:25Update READMEsin1+0-1
2015-03-24 12:24Add url to alpine linux fortify integrationsin1+2-1
2015-03-16 12:02Bump to 0.3sin1+1-1
2015-03-15 09:57Hide stpcpy() and stpncpy() under feature test macrossin1+6-2
2015-03-14 19:06Use __typeof__ to in part avoid replicating function typesTrutz Behn8+56-112
2015-03-14 17:35Fix typo in attribute nameTrutz Behn1+1-1
2015-03-14 11:10Update the READMEsin1+1-2
2015-03-14 09:45Explicitly cast pointers to satisfy C++ codesin1+2-2
2015-03-14 09:38Add __artificial__ to aid in debuggingsin9+58-58
2015-03-13 23:09Restore C++ supportsin10+51-11
2015-03-13 17:14Fix typo againsin1+1-1
2015-03-13 17:03Implement snprintf() and sprintf() using __builtin_va_arg_pack()sin1+28-21
2015-03-13 14:22Re-order vsnprintf() and vsprintf()sin1+12-12
2015-03-13 14:19Fix typosin1+1-1
2015-03-13 11:00Rework fortify implementation to use extern inlinesin9+335-361
2015-03-11 18:55Put include guards in the reserved namespaceTrutz Behn9+18-18
2015-03-11 15:31Clarify what is meant by not supporting C++sin1+2-1
2015-03-11 12:59Add note about C++ in the READMEsin1+1-0
2015-03-11 12:57Revert "Add explicit casts to satisfy C++ code"sin1+2-2
2015-03-11 11:18Ignore C++ for nowsin9+9-45
2015-03-11 09:26Add ifdef guards for C++ codesin9+72-0
2015-03-11 09:21Add explicit casts to satisfy C++ codesin1+2-2
2015-03-11 09:21Revert "Fix invalid conversion in C++ code"sin1+4-2
2015-03-11 09:17Fix invalid conversion in C++ codesin1+2-4
2015-03-10 18:04Bump to 0.2sin1+1-1
2015-03-10 18:04Inline ppoll() as wellsin1+2-1
2015-03-10 16:41Initial 0.1 releasesin1+1-1
2015-03-10 16:40Rename make dist target to fortify-headerssin1+6-6
2015-03-10 16:31Make ppoll() staticsin1+1-1
2015-03-08 11:47Update READMEsin1+1-1
2015-03-07 23:11Minor README updatesin1+1-1
2015-03-07 11:49Fix strncat() and strncpy() mappingssin1+2-2
2015-03-07 10:32Style fixsin1+0-1
2015-03-07 10:01Expand UB, may not be clear for all readerssin1+2-2
2015-03-06 17:55More README updatessin1+26-25
2015-03-06 17:15Add section on supported interfacessin1+63-0
2015-03-06 17:10Update READMEsin1+2-2
2015-03-06 16:55Grammar fixsin1+1-1
2015-03-06 16:53Update section names in READMEsin1+4-4
2015-03-06 16:52Update READMEsin1+4-3
2015-03-06 16:47Rephrase text in READMEsin1+2-3
2015-03-06 16:45Add info about out-of-bouds read interfacessin1+4-1
2015-03-06 16:42Update READMEsin1+41-8
2015-03-06 12:39Fix some checks in wchar.hsin1+4-4
2015-03-05 18:21Fix mbsnrtowcs() and wcsnrtombs() checkssin1+24-18
2015-03-04 20:16Fix wcsrtombs() checksin1+4-2
2015-03-04 18:26Fix mbsrtowcs() checksin1+5-2
2015-03-04 17:10Handle early termination in wcsnrtombs() and mbsnrtowcs()sin1+14-2
2015-03-04 13:12Add wctomb() checksin1+13-0
2015-03-04 13:09Add wcstombs() checksin1+18-5
2015-03-04 12:59Add wcsnrtombs() and wcsrtombs() checkssin1+28-0
2015-03-04 12:42Add wcsncat() and wcsncpy() checkssin1+33-0
2015-03-04 12:27Add wcrtomb(), wcscat() and wcscpy() checkssin1+40-0
2015-03-03 20:38Style fixsin1+4-4
2015-03-03 20:36Add mbstowcs() checksin1+13-0
2015-03-03 20:30Add mbsnrtowcs() and mbsrtowcs() checkssin1+28-0
2015-03-03 18:16Add wmemcpy() and wmemmove() checkssin1+26-0
2015-03-03 18:13Add wmemset() checksin1+13-0
2015-03-03 17:11Fix signed/unsigned warningsin1+2-2
2015-03-03 17:10Remove gcc attribute decorationsin1+2-8
2015-03-03 16:59Don't trap on error for vsprintf() and friendssin1+2-2
2015-03-03 14:34Add fgetws() checksin1+24-0
2015-03-03 14:28Add ppoll() checksin1+19-0
2015-03-01 13:17Add fwrite() checksin1+15-0
2015-03-01 13:12Add fread() checksin1+15-0
2015-03-01 12:10Add vsprintf() checksin1+22-0
2015-03-01 11:55Fix potential signed/unsigned warningsin1+1-1
2015-03-01 11:09Add sprintf() checksin1+15-1
2015-02-28 20:49Remove redundant checkssin2+2-2
2015-02-28 20:21Minor style fixsin1+1-1
2015-02-28 16:56Add sendto() checksin1+16-1
2015-02-28 16:48Add readlink() and readlinkat() checkssin1+26-0
2015-02-28 16:11Style fixsin1+2-4
2015-02-28 16:01Use __typeof__(sizeof 0) trickerysin1+2-2
2015-02-28 15:59__fortify_realpath() should trap if PATH_MAX is not definedsin1+4-0
2015-02-28 15:41Add note on binary compatsin1+3-0
2015-02-28 15:40Add README to make distsin1+1-1
2015-02-28 15:39Add initial READMEsin1+7-0
2015-02-28 15:30Add ttyname_r() checksin1+13-0
2015-02-28 14:52Don't include stddef.h from poll.hsin1+2-3
2015-02-28 12:10Add poll() checksin1+25-0
2015-02-28 12:00Add getgroups() checksin1+13-0
2015-02-28 11:52Add getdomainname() checksin1+19-0
2015-02-25 10:35Clarify comment a bitsin1+2-1
2015-02-25 10:31Add getlogin_r() checksin1+13-0
2015-02-24 19:37Add send() checksin1+13-0
2015-02-24 19:34Add write() checksin1+13-0
2015-02-24 19:04Add realpath() checksin1+35-0
2015-02-24 18:12Remove compile time checkssin5+0-103
2015-02-23 10:45Add gethostname() checkssin1+17-0
2015-02-22 09:39Remove header license commentssin6+0-6
2015-02-21 21:22Relicense under 0-clause BSDsin1+12-21
2015-02-05 14:07Add getcwd() checkssin1+17-0
2015-02-05 14:03Add confstr() checkssin1+17-0
2015-02-04 18:06Remember to #undef __errordeclsin5+10-0
2015-02-04 15:12Style fixsin5+5-5
2015-02-04 14:58Add recvfrom() checkssin1+17-0
2015-01-31 11:43Add uninstall, dist and clean target to Makefilesin1+16-2
2015-01-30 16:43Add recv() checkssin1+31-0
2015-01-30 16:40Use consistent naming conventionsin1+4-4
2015-01-30 16:37Remove pwrite/writesin1+0-34
2015-01-30 16:29No need for cp -f when installingsin1+1-1
2015-01-30 16:29Ensure make install can copy dirs toosin1+1-1
2015-01-30 16:25Remove __restrictsin3+13-14
2015-01-30 16:17Add FD_{CLR,SET} checkssin1+38-0
2015-01-30 09:44Add pread() and pwrite() checkssin1+34-0
2015-01-29 20:41Fix typosin1+1-1
2015-01-29 20:34Style fixsin1+0-1
2015-01-29 20:31Add read()/write() checkssin1+49-0
2015-01-29 17:55Allow dest == src in memcpy()sin1+3-3
2015-01-29 12:42Add compile-time checks as wellsin3+63-1
2015-01-29 12:14Style fixsin1+0-2
2015-01-29 12:14Add bzero() checkssin1+14-0
2015-01-29 11:13Add license infosin3+3-0
2015-01-29 11:10Style fixsin2+4-2
2015-01-29 10:47Trap if memcpy() pointers are overlappingsin1+6-0
2015-01-29 10:43Add bcopy() checkssin1+28-0
2015-01-29 00:12Add fgets() checkssin1+12-0
2015-01-28 23:40Use BSD-style func defssin2+27-13
2015-01-28 17:47Use #ifdef instead of #if definedsin1+2-2
2015-01-28 17:44Add mempcpy() checkssin1+17-0
2015-01-28 17:15Use local _n to avoid multiple evaluationsin1+2-2
2015-01-28 17:12Simplify checkssin1+8-30
2015-01-28 17:08Add snprintf() checkssin1+9-3
2015-01-28 16:57Use __builtin_va_listsin1+1-1
2015-01-28 16:54Add vsnprintf() checkssin1+28-0
2015-01-28 16:31Remove trailing semicolonsin1+2-2
2015-01-28 16:21Add stpncpy()sin1+14-0
2015-01-28 16:16Add stpcpy()sin1+14-0
2015-01-28 16:07Move defines to the bottomsin1+20-24
2015-01-28 15:36Merge __foo_chk() into __fortify_foo()sin1+34-119
2015-01-28 15:14Initial commitsin3+267-0