CWE-253

Incorrect Check of Function Return Value. [Error-Conditions, Improper-Adherence-To-Coding-Standards]

Required inputs: IR

The product incorrectly checks a return value from a function, which prevents it from detecting errors or exceptional conditions. Important and common functions will return some value about the success of its actions. This will alert the program whether or not to handle any errors caused by that function.
Demonstrative Examples
Example 1

This code attempts to allocate memory for 4 integers and checks if the allocation succeeds.

Example Language:C
    tmp = malloc(sizeof(int) * 4);
    if (tmp < 0 ) {
        perror("Failure");
        //should have checked if the call returned 0
    }

The code assumes that only a negative return value would indicate an error, but malloc() may return a null pointer when there is an error. The value of tmp could then be equal to 0, and the error would be missed.

Excerpts from CWE [https://cwe.mitre.org], Copyright (C) 2006-2026, the MITRE Corporation. See section 9.4. "3rd-Party Licenses" in the documentation for full details.

Possible Messages

Key

Text

Severity

Disabled

unhandled_return_value

Return value of function call not properly checked.

None

False

Options

allow_assignment_to_globals

allow_assignment_to_globals : bool = False

Whether assignment to global / static variables should be allowed. If set to false, an error will be reported if the returned value is assigned to a global variable and any call is performed before checking the return (i.e., some other routine could access the return value before checking it).
 

allow_assignment_to_variables_with_pointers

allow_assignment_to_variables_with_pointers : bool = True

Whether assignment to variables of which the address has been taken somewhere should be allowed. If set to false, an error will be reported if the return value is assigned to such a variable, to ensure that the return value is checked locally, before any access from outside is possible.
 

functions

functions

Type: dict[bauhaus.analysis.config.QualifiedName, bauhaus.ir.common.algorithms.matchers.Matcher]

Default:

{
   'aligned_alloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'asctime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'at_quick_exit': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'atexit': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'bsearch': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'bsearch_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'btowc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b07c0>,
   'c16rtomb': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'c32rtomb': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'calloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'clock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b2d40>,
   'cnd_broadcast': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'cnd_init': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b1480>,
   'cnd_signal': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'cnd_timedwait': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b2020>,
   'cnd_wait': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'ctime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fclose': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fflush': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fgetc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fgetpos': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b06a0>,
   'fgets': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'fgetwc': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b0c40>,
   'fopen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'fopen_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fputc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fputs': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fputwc': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b0c40>,
   'fputws': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fread': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'freopen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'freopen_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fseek': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fsetpos': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b06a0>,
   'ftell': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b1ab0>,
   'fwprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fwprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fwrite': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'fwscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'fwscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'getc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'getchar': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'getenv': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'getenv_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'gethostbyaddr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'gets_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'getwc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b07c0>,
   'getwchar': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b07c0>,
   'gmtime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'gmtime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'localtime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'localtime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'malloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'mblen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1a20>,
   'mbrlen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0190>,
   'mbrtoc16': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'mbrtoc32': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'mbrtowc': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'mbsrtowcs': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'mbsrtowcs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'mbstowcs': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0190>,
   'mbstowcs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'mbtowc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1a20>,
   'memchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'mktime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b2da0>,
   'mtx_init': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'mtx_lock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'mtx_timedlock': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b0400>,
   'mtx_trylock': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b1570>,
   'mtx_unlock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'printf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'pthread_mutex_lock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'putc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'putwc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b07c0>,
   'raise': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'realloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'remove': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'rename': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'scanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'scanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'setlocale': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'setvbuf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'signal': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b15d0>,
   'snprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'snprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'sprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'sprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'sscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'sscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'strchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'strerror_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'strftime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'strpbrk': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'strrchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'strstr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'strtod': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtof': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtoimax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtok': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'strtok_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'strtol': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtold': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtoll': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtoul': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtoull': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strtoumax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'strxfrm': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'swprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'swprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'swscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'swscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'thrd_create': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b0940>,
   'thrd_detach': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'thrd_join': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'thrd_sleep': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'time': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b2da0>,
   'timespec_get': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'tmpfile': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'tmpfile_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'tmpnam': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'tmpnam_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'tss_create': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'tss_get': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'tss_set': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0580>,
   'ungetc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'ungetwc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b07c0>,
   'vfprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vfprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vfscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vfscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vfwprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vfwprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vfwscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vfwscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vsnprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vsnprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vsprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vsprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vsscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vsscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vswprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vswprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vswscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vswscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vwprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'vwscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'vwscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'wcrtomb': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'wcschr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wcsftime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'wcspbrk': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wcsrchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wcsrtombs': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7f2d153b33a0>,
   'wcsrtombs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'wcsstr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wcstod': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstof': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstoimax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstok': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wcstok_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wcstol': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstold': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstoll': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstombs': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0190>,
   'wcstombs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'wcstoul': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstoull': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcstoumax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7f2d153b18a0>,
   'wcsxfrm': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'wctob': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'wctomb': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1a20>,
   'wctomb_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1a20>,
   'wctrans': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'wctype': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b22c0>,
   'wmemchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b1780>,
   'wprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b0e80>,
   'wscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>,
   'wscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7f2d153b14e0>
}
Allows to declare function names for which a check must exist. The check is expressed as an IR pattern.
 

known_check_functions

known_check_functions : set[bauhaus.analysis.config.FunctionName] = set()

Collection of functions which are known to test return values of functions under test.