Publication | Closed Access
SafeMem: Exploiting ECC-Memory for Detecting Memory Leaks and Memory Corruption During Production Runs
179
Citations
31
References
2005
Year
Unknown Venue
Software MaintenanceEngineeringMem TestingComputer ArchitectureSoftware EngineeringMemory LeakProduction RunsMemory Model (Programming)Software AnalysisHardware SecuritySystems EngineeringMemory Leak DetectionMemory ManagementMemory CorruptionMemory AnalysisComputer EngineeringComputer ScienceMemory LeaksProgram AnalysisSoftware TestingGarbage CollectionFault InjectionIn-memory Database
Memory leaks and memory corruption are two major forms of software bugs that severely threaten system availability and security. According to the US-CERT vulnerability notes database, 68% of all reported vulnerabilities in 2003 were caused by memory leaks or memory corruption. Dynamic monitoring tools, such as the state-of-the-art Purify, are commonly used to detect memory leaks and memory corruption. However, most of these tools suffer from high overhead, with up to a 20 times slowdown, making them infeasible to be used for production-runs. This paper proposes a tool called SafeMem to detect memory leaks and memory corruption on-the-fly during production-runs. This tool does not rely on any new hardware support. Instead, it makes a novel use of existing ECC memory technology and exploits intelligent dynamic memory usage behavior analysis to detect memory leaks and corruption. We have evaluated SafeMem with seven real-world applications that contain memory leak or memory corruption bugs. SafeMem detects all tested bugs with low overhead (only 1.6%-14.4%), 2-3 orders of magnitudes smaller than Purify. Our results also show that ECC-protection is effective in pruning false positives for memory leak detection, and in reducing the amount of memory waste (by a factor of 64-74) used for memory monitoring in memory corruption detection compared to page-protection.
| Year | Citations | |
|---|---|---|
Page 1
Page 1