> For the complete documentation index, see [llms.txt](https://playbook.sidthoviti.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://playbook.sidthoviti.com/devsecops/secure-coding/code-review-examples/use-after-free.md).

# Use After Free

**Example 1: C**

**Vulnerable Code:**

```c
cCopy codechar *ptr = malloc(10);
free(ptr);
strcpy(ptr, "data");
```

**Reason for vulnerability:** Using memory after it has been freed, leading to undefined behavior.

**Fixed Code:**

```c
cCopy codechar *ptr = malloc(10);
strcpy(ptr, "data");
free(ptr);
ptr = NULL;
```

**Reason for fix:** Set the pointer to `NULL` after freeing it to prevent use after free.

**Example 2: C++**

**Vulnerable Code:**

```cpp
cppCopy codeint *ptr = new int[10];
delete[] ptr;
ptr[0] = 1;
```

**Reason for vulnerability:** Using memory after it has been freed, leading to undefined behavior.

**Fixed Code:**

```cpp
cppCopy codeint *ptr = new int[10];
delete[] ptr;
ptr = nullptr;
```

**Reason for fix:** Set the pointer to `nullptr` after deleting it to prevent use after free.
