mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
26 lines
461 B
C++
26 lines
461 B
C++
static const int* xptr;
|
|
|
|
void localAddressEscapes() {
|
|
int x = 0;
|
|
xptr = &x;
|
|
}
|
|
|
|
void example1() {
|
|
localAddressEscapes();
|
|
const int* x = xptr; // BAD: This pointer points to expired stack allocated memory.
|
|
}
|
|
|
|
void localAddressDoesNotEscape() {
|
|
int x = 0;
|
|
xptr = &x;
|
|
// ...
|
|
// use `xptr`
|
|
// ...
|
|
xptr = nullptr;
|
|
}
|
|
|
|
void example2() {
|
|
localAddressDoesNotEscape();
|
|
const int* x = xptr; // GOOD: This pointer does not point to expired memory.
|
|
}
|