An efficient and backwards-compatible transformation to ensure memory safety of C programs
By Wei Xu, Daniel C. DuVarney, R. Sekar. 2004
174 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Computer Networks and Communications, Hardware and Architecture
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Han-Jia Ye
- De-chuan Zhan
- Da-Wei Zhou
- Fu-Yun Wang
- Steve Zdancewic
- Milo M. K. Martin
- Santosh Nagarakatte
- Jianzhou Zhao
In Computer Networks and Communications
- Milo M. K. Martin
- Steve Zdancewic
- Santosh Nagarakatte
- Jianzhou Zhao
- B. Zorn
- Emery D. Berger
- Pradeep Varma
- R. Shyamasundar
In Hardware and Architecture
- Steve Zdancewic
- Milo M. K. Martin
- Santosh Nagarakatte
- Jianzhou Zhao
- B. Zorn
- Emery D. Berger
- Pradeep Varma
- R. Shyamasundar
Citations in the corpus
- Forward Compatible Few-Shot Class-Incremental Learning (2022, background): “Backward Compatible Learning: The concept ‘compatibility’ is a design characteristic considered in software engineering [17, 29, 43, 49].”
- Class-Incremental Learning: A Survey (2023, unknown): “CIL with Bidirectional Compatibility : Compatibility is a design characteristic in software engineering community [229], [230], [231], [232], which was introduced to the machine learning community in [233], [234].”
- Backward-compatible constant-time exception-protected memory (2009, methodology): “While this improves backward compatibility somewhat, [22] is still hobbled by having to pass meta-data parameters to functions separately from the pointer parameters, forcing interface changes with functions for both parameters passed in and results returned back (Section 2.”
- Practical Control Flow Integrity and Randomization for Binary Executables (2013, unknown): “A representative technique is automatic bounds checking [21][22]; however these techniques require recompilation from source, and their performance overheads are too high for practical deployment.”
- Deep Class-Incremental Learning: A Survey (2023, unknown): “CIL with Bidirectional Compatibility: Compatibility is a design characteristic in software engineering community [240], [241], [242], [243], which was introduced to the machine learning community in [244], [245].”
- CETS: compiler enforced temporal safety for C (2010, methodology): “Although use of fat pointers has been proposed in variety of contexts [5, 19, 23, 30], fat pointers have the drawback of changing memory layout in programmer-visible ways, and the modified memory layout makes interfacing with libraries challenging [10, 23].”
- Efficient Techniques for Comprehensive Protection from Memory Error Exploits (2005, background): “Lower overheads are reported in [34], but the overheads can still be over 100% for some programs.”
- Preventing Memory Error Exploits with WIT (2008, background): “Xu et al [45] describe a technique that improves the coverage of the previous bounds checkers and reduces their overhead.”
- SGXBOUNDS: Memory Safety for Shielded Execution (2017, background): “The only exceptions are Software Fault Isolation (SFI) [39, 79], Data Space Randomization (DSR) [24, 28] and memory-safety techniques [17, 20, 35, 56, 58, 59, 67, 82].”
- DieHard: probabilistic memory safety for unsafe languages (2006, methodology): “Assuming source code is available, a programmer can also compile the code with a safe C compiler that inserts dynamic checks for the remaining errors, further increasing running time [1, 3, 27, 41 , 42].”