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 条
  • [1] Runtime Detection of Temporal Memory Errors
    Vorobyov, Kostyantyn
    Kosmatov, Nikolai
    Signoles, Julien
    Jakobsson, Arvid
    RUNTIME VERIFICATION (RV 2017), 2017, 10548 : 294 - 311
  • [2] Reducing Smart Contract Runtime Errors on Ethereum
    Jumnongsaksub, Siwapol
    Sripanidkulchai, Kunwadee
    IEEE SOFTWARE, 2020, 37 (05) : 55 - 59
  • [3] Detecting Memory Errors at Runtime with Source-Level Instrumentation
    Chen, Zhe
    Yan, Junqi
    Kan, Shuanglong
    Qian, Ju
    Xue, Jingling
    PROCEEDINGS OF THE 28TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS (ISSTA '19), 2019, : 341 - 351
  • [4] Detection of Runtime Conflicts among Services in Smart Cities
    Ma, M.
    Preum, S. Masud
    Tarneberg, W.
    Ahmed, M.
    Ruiters, M.
    Stankovic, J.
    2016 IEEE INTERNATIONAL CONFERENCE ON SMART COMPUTING (SMARTCOMP), 2016, : 76 - 85
  • [5] Detection of runtime errors in MISRA c programs: A deductive approach
    John, Ajith K.
    Sharma, Babita
    Bhattacharjee, A. K.
    Dhodapkar, S. D.
    Ramesh, S.
    COMPUTER SAFETY, RELIABILITY, AND SECURITY, PROCEEDINGS, 2007, 4680 : 491 - +
  • [6] Runtime Detection of Executional Errors in Robot-Assisted Surgery
    Li, Zongyu
    Hutchinson, Kay
    Alemzadeh, Homa
    2022 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA 2022), 2022, : 3850 - 3856
  • [7] Memory Usage Improvement Using Runtime Alias Detection
    Hanai, Ryo
    Ugawa, Tomoharu
    Yoneda, Masashi
    Yasugi, Masahiro
    Yuasa, Taiichi
    TRENDS IN FUNCTIONAL PROGRAMMING, VOL 7, 2007, 7 : 129 - 144
  • [8] Towards Runtime Monitoring for malicious behaviors detection in Smart Ecosystems
    Cioroaica, Emilia
    Di Giandomenico, Felicita
    Kuhn, Thomas
    Lonetti, Francesca
    Marchetti, Eda
    Jahic, Jasmin
    Schnicke, Frank
    2019 IEEE 30TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW 2019), 2019, : 200 - 203
  • [9] Automatic Detection of Synchronization Errors in Codes that Target the Open Community Runtime
    Dokulil, Jiri
    Katreniakova, Jana
    EURO-PAR 2018: PARALLEL PROCESSING, 2018, 11014 : 3 - 15
  • [10] Continual Correction of Errors Using Smart Memory Replay
    Cory, Callum
    Benavides-Prado, Diana
    Koh, Yun Sing
    2021 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN), 2021,