增加C库健壮性的自动化方法

C. Fetzer, Zhen Xiao
{"title":"增加C库健壮性的自动化方法","authors":"C. Fetzer, Zhen Xiao","doi":"10.1109/DSN.2002.1028896","DOIUrl":null,"url":null,"abstract":"As our reliance on computers increases, so does the need for robust software. Previous studies have shown that many C libraries exhibit robustness problems due to exceptional inputs. This paper describes the HEALERS system that uses an automated approach to increasing the robustness of C libraries without source code access. The system extracts the C type information for a shared library using header files and manual pages. Then it generates for each global function a fault-injector to determine a \"robust \" argument type for each argument. Based on this information and optionally, some manual editing, the system generates a robustness wrapper that performs careful argument checking before invoking C library functions. A robustness evaluation using Ballista tests has shown that our wrapper can prevent crash, hang, and abort failures. Moreover the wrapper generation process is highly automated and can easily adapt to new library releases.","PeriodicalId":93807,"journal":{"name":"Proceedings. International Conference on Dependable Systems and Networks","volume":"45 1","pages":"155-164"},"PeriodicalIF":0.0000,"publicationDate":"2002-06-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"32","resultStr":"{\"title\":\"An automated approach to increasing the robustness of C libraries\",\"authors\":\"C. Fetzer, Zhen Xiao\",\"doi\":\"10.1109/DSN.2002.1028896\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"As our reliance on computers increases, so does the need for robust software. Previous studies have shown that many C libraries exhibit robustness problems due to exceptional inputs. This paper describes the HEALERS system that uses an automated approach to increasing the robustness of C libraries without source code access. The system extracts the C type information for a shared library using header files and manual pages. Then it generates for each global function a fault-injector to determine a \\\"robust \\\" argument type for each argument. Based on this information and optionally, some manual editing, the system generates a robustness wrapper that performs careful argument checking before invoking C library functions. A robustness evaluation using Ballista tests has shown that our wrapper can prevent crash, hang, and abort failures. Moreover the wrapper generation process is highly automated and can easily adapt to new library releases.\",\"PeriodicalId\":93807,\"journal\":{\"name\":\"Proceedings. International Conference on Dependable Systems and Networks\",\"volume\":\"45 1\",\"pages\":\"155-164\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2002-06-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"32\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings. International Conference on Dependable Systems and Networks\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/DSN.2002.1028896\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. International Conference on Dependable Systems and Networks","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/DSN.2002.1028896","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 32

摘要

随着我们对计算机依赖的增加,对强大软件的需求也在增加。以前的研究表明,由于异常输入,许多C库表现出鲁棒性问题。本文描述了HEALERS系统,该系统使用自动化方法来增加C库的健壮性,而无需访问源代码。系统通过头文件和手册页提取共享库的C类型信息。然后,它为每个全局函数生成一个故障注入器,以确定每个参数的“健壮”参数类型。基于这些信息和一些可选的手工编辑,系统生成一个健壮的包装器,该包装器在调用C库函数之前执行仔细的参数检查。使用Ballista测试的健壮性评估表明,我们的包装器可以防止崩溃、挂起和中止失败。此外,包装器生成过程是高度自动化的,可以很容易地适应新的库版本。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
An automated approach to increasing the robustness of C libraries
As our reliance on computers increases, so does the need for robust software. Previous studies have shown that many C libraries exhibit robustness problems due to exceptional inputs. This paper describes the HEALERS system that uses an automated approach to increasing the robustness of C libraries without source code access. The system extracts the C type information for a shared library using header files and manual pages. Then it generates for each global function a fault-injector to determine a "robust " argument type for each argument. Based on this information and optionally, some manual editing, the system generates a robustness wrapper that performs careful argument checking before invoking C library functions. A robustness evaluation using Ballista tests has shown that our wrapper can prevent crash, hang, and abort failures. Moreover the wrapper generation process is highly automated and can easily adapt to new library releases.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信