Runtime Detection of Memory Errors with Smart Status

被引:12
|
作者
Chen, Zhe [1 ,4 ,5 ]
Wang, Chong [1 ]
Yan, Junqi [1 ]
Sui, Yulei [2 ]
Xue, Jingling [3 ]
机构
[1] Nanjing Univ Aeronaut & Astronaut, Nanjing, Jiangsu, Peoples R China
[2] Univ Technol Sydney, Sydney, NSW, Australia
[3] Univ New South Wales, Sydney, NSW, Australia
[4] East China Normal Univ, Shanghai Key Lab Trustworthy Comp, Shanghai, Peoples R China
[5] Nanjing Univ, State Key Lab Novel Software Technol, Nanjing, Jiangsu, Peoples R China
基金
中国国家自然科学基金;
关键词
memory errors; dynamic analysis; testing; error detection;
D O I
10.1145/3460319.3464807
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
C is a dominant language for implementing system software. Unfortunately, its support for low-level control of memory often leads to memory errors. Dynamic analysis tools, which have been widely used for detecting memory errors at runtime, are not yet satisfactory as they cannot deterministically and completely detect some types of memory errors, e.g., segment confusion errors, sub-object overflows, use-after-frees, and memory leaks. We propose SMATUS, short for smart status, a new dynamic analysis approach that supports comprehensive runtime detection of memory errors. The key innovation is to create and maintain a small status node for each memory object. Our approach tracks not only the bounds of each pointer's referent but also the status and reference count of the referent in its status node, where the status represents the liveness and segment type of the referent. A status node is smart as it is automatically destroyed when it becomes useless. To the best of our knowledge, SMATUS represents the most comprehensive approach of its kind. In terms of effectiveness (for detecting more kinds of errors), SMATUS outperforms state-of-the-art tools, Google's AddressSanitizer, SoftBoundCETS and Valgrind. In terms of performance, SMATUS outperforms SoftBoundCETS and Valgrind in terms of both time and memory overheads incurred, and is on par with AddressSanitizer in terms of the time and memory overheads tradeoff (with much lower memory overhead incurred).
引用
收藏
页码:296 / 308
页数:13
相关论文
共 50 条
  • [21] Compiler-Assisted Detection of Transient Memory Errors
    Tavarageri, Sanket
    Krishnamoorthy, Sriram
    Sadayappan, P.
    ACM SIGPLAN NOTICES, 2014, 49 (06) : 204 - 215
  • [22] Change Detection in Smart Grids Using Errors In Variables Models
    Wei, Chuanming
    Wiesel, Ami
    Blum, Rick S.
    2012 IEEE 7TH SENSOR ARRAY AND MULTICHANNEL SIGNAL PROCESSING WORKSHOP (SAM), 2012, : 17 - 20
  • [23] Runtime Verification of Ethereum Smart Contracts
    Ellul, Joshua
    Pace, Gordon
    2018 14TH EUROPEAN DEPENDABLE COMPUTING CONFERENCE (EDCC 2018), 2018, : 158 - 163
  • [24] Securing Smart Contract with Runtime Validation
    Li, Ao
    Choi, Jemin Andrew
    Long, Fan
    PROCEEDINGS OF THE 41ST ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '20), 2020, : 438 - 453
  • [25] We Are Crisis: Runtime Errors in Programmatic Theory
    Arend, Richard J.
    ACADEMY OF MANAGEMENT REVIEW, 2022, 47 (02): : 331 - 333
  • [26] Labelled reductions, runtime errors, and operational subsumption
    Dami, L
    AUTOMATA, LANGUAGES AND PROGRAMMING, 1997, 1256 : 782 - 793
  • [27] A sound type system for typing runtime errors
    Graduate School of Information Science, Nagoya University, Nagoya, Aichi
    464-8603, Japan
    IPSJ Online Trans., 2012 (96-104):
  • [28] Runtime Failure Detection
    Wuttke, Jochen
    ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2008, : 987 - 990
  • [29] Enhancing Java']Java Runtime Environment for Smart Cards Against Runtime Attacks
    Akram, Raja Naeem
    Markantonakis, Konstantinos
    Mayes, Keith
    COMPUTER SECURITY - ESORICS 2015, PT II, 2015, 9327 : 541 - 560
  • [30] Low Runtime Approach for Fault Detection for Refrigeration Systems in Smart Homes Using Wavelet Transform
    Lemes, Dimas Augusto Mendes
    Cabral, Thales Wulfert
    Motta, Lucas Lui
    Fraidenraich, Gustavo
    de Lima, Eduardo Rodrigues
    Neto, Fernando Bauer
    Meloni, Luis Geraldo P.
    IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, 2024, 70 (01) : 4447 - 4456