In this section:
Overview
This error is generated whenever an uninitialized pointer is dereferenced. Note: This error category will be disabled if full uninitialized memory checking is in effect (the default). In this case, errors are detected in the READ_UNINIT_MEM category instead.Code Description Enabled Reported Platform READ_UNINIT_PTR Reading from uninitialized pointer Runtime Windows/Unix
Problem
The following code attempts to use the value of the a
pointer, even though it has never been initialized.
/* * File: readuptr.c */ main() { int b, *a; b = *a; return (0); }
Diagnosis at Runtime
[readuptr.c:8] **READ_UNINIT_PTR** >> b = *a; Reading from uninitialized pointer: a ---- Associated Common Weakness Enumerations ---- CWE-457: Use of uninitialized variable CWE-824: Access of uninitialized pointer CWE-908: Use of uninitialized resource Stack trace where the error occurred: main() readuptr.c, 8
- Line 2: Source line at which the problem was detected.
- Line 3: Description of the problem and the expression that is in error.
- Line 5-8: CWEs associated with this problem.
- Line 10: Stack trace showing the function call sequence leading to the error.
Repair
This problem is usually caused by omitting an assignment or allocation statement that would initialize a pointer. The code given can be corrected by including an assignment as shown below.
/* * File: readuptr.c (Modified) */ main() { int b, *a, c; c = 1; a = &c; b = *a; return (0); }
References
The table below shows Common Weakness Enumerations associated with this error.