C and C++ Binaries


BADFUNC.SETJMP : Use of setjmp

Summary

The code uses setjmp(). The use does not need to be reachable.

Properties

Class Name Use of setjmp
Significance style
Mnemonic BADFUNC.SETJMP
Categories
MisraC2023 MisraC2023:21.4 The standard header file <setjmp.h> shall not be used
Misra2012 Misra2012:21.4 The standard header file <setjmp.h> shall not be used
Misra2004 Misra2004:20.7 The setjmp macro and the longjmp function shall not be used
AUTOSARC++14 AUTOSARC++14:M17-0-5 The setjmp macro and the longjmp function shall not be used.
MisraC++2008 MisraC++2008:17-0-5 The setjmp macro and the longjmp function shall not be used.
MisraC++2023 MisraC++2023:21.10.2 The standard header file <csetjmp> shall not be used
CWE CWE:242 Use of Inherently Dangerous Function
  CWE:676 Use of Potentially Dangerous Function
  CWE:691 Insufficient Control Flow Management
  CWE:710 Improper Adherence to Coding Standards
CERT-C CERT-C:MSC22-C Use the setjmp(), longjmp() facility securely
CERT-CPP CERT-CPP:ERR52-CPP Do not use setjmp() or longjmp()
JSF++ JSF++:20 The setjmp macro and the longjmp function shall not be used.
POW10 POW10:1 Restrict to simple control flow constructs.
JPL JPL:11 Do not use goto, setjmp or longjmp.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Use of setjmp"

Example

Any call to setjmp() will trigger a warning of this class.

#include <setjmp.h>
...
int j = setjmp(myenv); /* warning issued here */

Relevant Configuration File Parameters

This class is implemented using a BAD_FUNCTION_* rule set in the general template configuration file.

The following configuration file parameters affect checks for this warning class.