Publication | Closed Access
Memory overflow protection for embedded systems using run-time checks, reuse, and compression
28
Citations
22
References
2006
Year
EngineeringRun-time ChecksMemory OverflowsComputer ArchitectureSoftware EngineeringMemory Overflow ProtectionEmbedded SystemsMemory Model (Programming)Software AnalysisFormal VerificationHardware SecurityHardware Security SolutionCompilersMemory ManagementHeap SizeCombined StackRuntime VerificationOperating System SecurityComputer EngineeringComputer ScienceVirtual MemoryStatic Program AnalysisProgram AnalysisSoftware TestingGarbage CollectionSystem Software
Embedded systems usually lack virtual memory and are vulnerable to memory overflow since they lack a mechanism to detect overflow or use swap space thereafter. We present a method to detect memory overflows using compiler-inserted software run-time checks. Its overheads in run-time and energy are 1.35 and 1.12%, respectively. Detection of overflow allows system-specific remedial action. We also present techniques to grow the stack or heap segment after they overflow, into previously unutilized space, such as dead variables, free holes in the heap, and space freed by compressing live variables. These may avoid the out-of-memory error if the space recovered is enough to complete execution. The reuse methods are able to grow the stack or heap beyond its overflow by an amount that varies widely by application---the amount of recovered space ranges from 0.7 to 93.5% of the combined stack and heap size.
| Year | Citations | |
|---|---|---|
Page 1
Page 1