CWE-415

Double Free

The product calls free() twice on the same memory address.

Mitigation

Phase: Architecture and Design

Description:

  • Choose a language that provides automatic memory management.
Mitigation

Phase: Implementation

Description:

  • Ensure that each allocation is freed only once. After freeing a chunk, set the pointer to NULL to ensure the pointer cannot be freed again. In complicated error conditions, be sure that clean-up routines respect the state of allocation properly. If the language is object oriented, ensure that object destructors delete each chunk of memory only once.
Mitigation

Phase: Implementation

Description:

  • Use a static analysis tool to find double free instances.

No CAPEC attack patterns related to this CWE.

Back to CWE stats page