With respect to our test cases (incorporated into our membugs program), here is Valgrind's report card and memory bugs given as follows:
Test case # |
Test case |
Detected by Valgrind? |
1 |
Uninitialized memory read (UMR) |
Yes
|
2 |
Out-of-bounds (OOB): write overflow |
No
|
3 |
OOB: write overflow [on dynamic memory] |
Yes
|
4 |
OOB: write underflow |
Yes
|
5 | OOB: read overflow [on compile-time memory] |
No
|
6 | OOB: read overflow [on dynamic memory] |
Yes
|
7 | OOB: read underflow [on dynamic memory] |
Yes
|
8 | UAF, also known as dangling pointer |
Yes
|
9 | UAR, also known as use-after-scope (UAS) |
No
|
10 | Double free |
Yes
|
11 | Memory leak test case 1: simple leak |
Yes
|
12 | Memory leak test case 1: leak more (in a loop) |
Yes
|
13 | Memory leak test case 1: lib API leak |
Yes
|