Pointer free not followed by a reset
statement to clear leftover data
This defect occurs when a pointer is freed and not reassigned another value. After freeing a pointer, the memory data is still accessible. To clear this data, the pointer must also be set to NULL or another value.
Not resetting pointers can cause dangling pointers. Dangling pointers can cause:
Freeing already freed memory.
Reading from or writing to already freed memory.
Hackers executing code stored in freed pointers or with vulnerable permissions.
After freeing a pointer, if it is not immediately assigned to another valid address, set the pointer to NULL.
| Group: Good Practice |
| Language: C | C++ |
| Default: Off |
Command-Line Syntax: MISSING_FREED_PTR_RESET |
| Impact: Low |
| CWE ID: 415, 416, 825 |