Fail-Safe C is a memory-safe implementation of the full ANSI C language. More precisely, it detects and disallows all unsafe operations, yet conforming to the full ANSI C standard (including casts and unions) and even supporting many “dirty tricks” common in many existing programs which do not strictly conform to the standard. This work also proposes several techniques---both compile-time and runtime---to reduce the overhead of runtime checks. By using the Fail-Safe C compiler, programmers can easily make their programs safe without performing heavy rewriting or porting of their code.
For more details, refer the following:
- Yutaka Oiwa. Implementation of the Memory-safe Full ANSI-C Compiler. ACM SIGPLAN Conference on Programing Language Design and Implementations (PLDI2009), June 2009.
Table of Contents
- 20 Oct 2007: Homepage published
- 20 Oct 2007: “Preview release” repository published
- 11 Apr 2008: “Fail-Safe C - release 1” released (revision 1662)
- 28 Aug 2008: Fail-Safe C Version 1.0.1 released (revision 1735)
- 16 Jun 2009: Fail-Safe C Version 1.5.0 released (revision 1797)
- 02 Nov 2009: Fail-Safe C Version 1.6.0 released (revision 2065)
- 01 Jun 2010: development revision 2252 (release candidate for version 2.0.0)
Meta Information on the research project
- Yutaka OIWA
- Research Scientist, (Former) Research Team for Software Security, RCIS, AIST
- The author can be contacted via email: <y dot oiwa at aist.go.jp>.
- Development of the Fail-Safe C system is partially supported by “New-generation Information Security R&D Program” from the Ministry of Economy, Trade and Industry (METI).
- Part of library implementation is done jointly with Lepidum, Co. Ltd.
- Development of cross compilers, portable architectures and support for embedded architectures are supported under the project “Security technology for embedded systems”, under the Programs of Special Coordination Funds for Promoting Science and Technology from Japan.
- In University of Tokyo, this work was partially supported by research fellowships of the Japan Society for the Promotion of Science (JSPS) for Young Scientists. Some of the very early stage of this work was also partially supported by Research for the Future Program “Intelligence Information and Advanced Information Processing”, Japan Society for the Promotion of Science (JSPS).
Some derived research projects of Fail-Safe C are undertaken by the following groups:
- A C-to-Java source converter using Fail-Safe C techniques --- in Kobayashi Laboratory, Tohoku University
- VitC: A C implementation which prevents information leakage --- in Yonezawa Laboratory, University of Tokyo