Addressing memory safety with software
In the previous post we looked at the underlying causes of memory unsafety which was using unsafe programming languages. In particular, C and C++ have been widely used for performance but at the same time carry risks of errors that cause unsafe memory accesses. Let’s now look at software approaches to mitigating memory unsafety.
Software mitigations
A variety of software mitigations have been proposed such as those listed by Saar Amar. The methods vary in granularity, determinism and implementation overhead.
Stack canaries
A well-known example of mitigating memory unsafety with software is the stack canary. If a program is executing and calls a subroutine, the address of the next instruction in the program is pushed onto the call stack and used as a return pointer (RP). When the subroutine has finished execution the return address is popped from the call stack.
To read the full article, click here
Related Semiconductor IP
- Bluetooth Low Energy 6.0 Digital IP
- Ultra-low power high dynamic range image sensor
- Flash Memory LDPC Decoder IP Core
- SLM Signal Integrity Monitor
- Digital PUF IP
Related Blogs
- Software building blocks for faster functional safety certification
- Addressing Multi-Physics Effects for High-Performing Multi-Die Systems with Integrated Die/Package Co-Design Platform
- Solve SoC Bottlenecks with Smart Local Memory in AI/ML Subsystems
- Addressing Challenges with FPGAs in Space Using the GR716B Microcontroller
Latest Blogs
- Trust at the Core: A Deep Dive into Hardware Root of Trust (HRoT)
- Himax Accelerates Chip Design with Cadence Cerebrus Intelligent Chip Explorer
- LPDDR6: The Next-Generation LPDDR Device Standard and How It Differs from LPDDR5
- MIPI MPHY 6.0: Enabling Next-Generation UFS Performance
- How Does Crocodile Dundee Relate to AI Inference?