V506. Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid.


The analyzer found a potential error related to storing a pointer of a local variable. The warning is generated if the lifetime of an object is less than that of the pointer referring to it.

The first example:

class MyClass
{
  size_t *m_p;
  void Foo() {
    size_t localVar;
    ...
    m_p = &localVar;
  }
};

In this case, the address of the local variable is saved inside the class into the m_p variable and can be then used by mistake in a different function when the localVar variable is destructed.

The second example:

void Get(float **x)
{
  float f;
  ...
  *x = &f;
}

The Get() function will return the pointer to the local variable that will not exist by the moment.

This message is similar to V507 message.

According to Common Weakness Enumeration, potential errors found by using this diagnostic are classified as CWE-562.

You can look at examples of errors detected by the V506 diagnostic.


Bugs Found

Checked Projects
336
Collected Errors
12 743