C and C++ Binaries


BADFUNC.BSEARCH : Use of bsearch

Summary

A use of bsearch(), which has undefined behavior in some circumstances.

Properties

Class Name Use of bsearch
Significance style
Mnemonic BADFUNC.BSEARCH
Categories
MisraC2023 MisraC2023:21.9 The library functions bsearch and qsort of <stdlib.h> shall not be used
Misra2012 Misra2012:21.9 The library functions bsearch and qsort of <stdlib.h> shall not be used
CWE CWE:676 Use of Potentially Dangerous Function
  CWE:758 Reliance on Undefined, Unspecified, or Implementation-Defined Behavior
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 bsearch"

Example

int mycompfn (const void* a, const void *b);
int myarr[100];

int do_lookup(int i){
    void * res;
    res = bsearch ((void *)&i, &myarr, 100, sizeof(int), &mycompfn); /* 'Use of bsearch' warning issued here */
  if (!res){
    return -1;
  }
  return *(int*)res;
}      

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.