3 个仓库
Automatic validation of memory and array access indices during execution to prevent buffer overflows.
Distinct from Memory Bounds Checking: Distinct from general memory bounds checking as it specifically focuses on automatic compiler-inserted runtime checks for stability during debug builds.
Explore 3 awesome GitHub repositories matching security & cryptography · Runtime Bounds Checking. Refine with filters or upvote what's useful.
GSL is a Guidelines Support Library for C++ that provides a set of types and functions designed to implement the C++ Core Guidelines. It functions as a framework for improving code safety and portability across different platforms. The library provides a contract-based programming model to verify program invariants through precondition and postcondition assertions. It includes specialized wrappers for null-pointer safety and bounds-checked memory views to prevent buffer overflows and invalid memory access. The project also covers safe integer conversion to prevent data truncation and provide
Implements a specialized memory access wrapper that prevents buffer overflow errors through strict runtime bounds checking.
cppfront 是一个 C++ 语言扩展前端和源码到源码的翻译器。它作为一个语法转换器,将实验性语言扩展转换为符合标准的 C++ 代码,从而允许在现有构建系统中对新语言特性进行原型设计。 该项目提供了一个翻译层,增加了对模式匹配、契约和字符串插值的支持。它包括一个用于编译时反射和使用专门元函数进行自动化代码生成的元编程工具。 该系统自动化了多项开发任务,包括通过自动前向声明解决依赖顺序,以及管理参数传递模式。它还应用静态分析来插入自动边界检查,并通过在变量最后一次使用点应用移动语义来优化资源管理。 该工具包括一个验证机制,以确保标准源代码在翻译过程中保持不变,从而防止语法回归。
Automatically inserts runtime checks on container subscript accesses to prevent out-of-bounds memory errors.
c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte
Inserts automatic runtime bounds and value checks during debug builds to identify bugs early.