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 0x7ff697ce1b40>,
   'asctime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'at_quick_exit': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'atexit': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'bsearch': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'bsearch_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'btowc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54b50>,
   'c16rtomb': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'c32rtomb': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'calloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'clock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb56950>,
   'cnd_broadcast': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'cnd_init': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8bb0>,
   'cnd_signal': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'cnd_timedwait': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc99f0>,
   'cnd_wait': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'ctime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fclose': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fflush': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fgetc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fgetpos': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbcae60>,
   'fgets': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'fgetwc': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb55120>,
   'fopen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'fopen_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fputc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fputs': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fputwc': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb55120>,
   'fputws': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fread': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'freopen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'freopen_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fseek': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fsetpos': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbcae60>,
   'ftell': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8df0>,
   'fwprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fwprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fwrite': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'fwscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'fwscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'getc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'getchar': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'getenv': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'getenv_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'gethostbyaddr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'gets_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'getwc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54b50>,
   'getwchar': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54b50>,
   'gmtime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'gmtime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'localtime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'localtime_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'malloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'mblen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb556c0>,
   'mbrlen': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb56050>,
   'mbrtoc16': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'mbrtoc32': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'mbrtowc': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'mbsrtowcs': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'mbsrtowcs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'mbstowcs': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb56050>,
   'mbstowcs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'mbtowc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb556c0>,
   'memchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'mktime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54dc0>,
   'mtx_init': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'mtx_lock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'mtx_timedlock': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8f40>,
   'mtx_trylock': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8c40>,
   'mtx_unlock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'printf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'pthread_mutex_lock': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'putc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'putwc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54b50>,
   'raise': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'realloc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'remove': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'rename': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'scanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'scanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'setlocale': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'setvbuf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'signal': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8610>,
   'snprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'snprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'sprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'sprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'sscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'sscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'strchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'strerror_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'strftime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'strpbrk': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'strrchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'strstr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'strtod': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtof': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtoimax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtok': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'strtok_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'strtol': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtold': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtoll': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtoul': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtoull': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strtoumax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'strxfrm': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'swprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'swprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'swscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'swscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'thrd_create': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc98d0>,
   'thrd_detach': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'thrd_join': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'thrd_sleep': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'time': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54dc0>,
   'timespec_get': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'tmpfile': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'tmpfile_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'tmpnam': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'tmpnam_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'tss_create': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'tss_get': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'tss_set': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb55540>,
   'ungetc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'ungetwc': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb54b50>,
   'vfprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vfprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vfscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vfscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vfwprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vfwprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vfwscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vfwscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vsnprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vsnprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vsprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vsprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vsscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vsscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vswprintf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vswprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vswscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vswscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vwprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'vwscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'vwscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'wcrtomb': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'wcschr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wcsftime': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'wcspbrk': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wcsrchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wcsrtombs': <bauhaus.ir.common.algorithms.matchers.OrMatcher object at 0x7ff69bbc8a90>,
   'wcsrtombs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'wcsstr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wcstod': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstof': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstoimax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstok': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wcstok_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wcstol': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstold': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstoll': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstombs': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb56050>,
   'wcstombs_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'wcstoul': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstoull': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcstoumax': <bauhaus.ir.common.algorithms.matchers.BinaryMatcher object at 0x7ff69bb569b0>,
   'wcsxfrm': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'wctob': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'wctomb': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb556c0>,
   'wctomb_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb556c0>,
   'wctrans': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'wctype': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1360>,
   'wmemchr': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1b40>,
   'wprintf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff697ce1630>,
   'wscanf': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>,
   'wscanf_s': <bauhaus.rules.axivion.expressions.calls.unhandled_return_value.BinaryRelationAnyMatcher object at 0x7ff69bb577f0>
}
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.