In this section:

Overview

This error is generated when a call is made through an uninitialized function pointer. 

CodeDescriptionEnabledReportedPlatform
FUNC_UNINIT_PTR

Function pointer is uninitialized

(tick)RuntimeWindows/Unix


Problem

The following code attempts to call a function through a pointer that has not been set:

/*
 * File: funcuptr.c
 */
main()
{
	void (*a)();

	a();
	return (0);
}

Diagnosis at Runtime

[funcuptr.c:8] **FUNC_UNINIT_PTR**
>>		 a();
Function pointer is uninitialized: 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() funcuptr.c, 8
**Memory corrupted. Program may crash!!**
  • 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.
  • Line 12: Informational message indicating that a serious error has occurred which may cause the program to crash.

Repair

This problem normally occurs because some assignment statement has been omitted from the code. The current example can be fixed as follows:

extern void myfunc();
main()
{
	void (*a)();
	a = myfunc;
	a();
}

References

The table below shows Common Weakness Enumerations associated with this error.

CWEDescription
CWE-457Use of uninitialized variable
CWE-824Access of uninitialized pointer
CWE-908Use of uninitialized resource
  • No labels