Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler.
Number of rules (primarily dangerous function names) in C/C++ ruleset: 223
Examining data/numba-0.51.2/numba/_arraystruct.h
Examining data/numba-0.51.2/numba/_dispatcher.c
Examining data/numba-0.51.2/numba/_dispatcher.h
Examining data/numba-0.51.2/numba/_dispatcherimpl.cpp
Examining data/numba-0.51.2/numba/_dynfunc.c
Examining data/numba-0.51.2/numba/_dynfuncmod.c
Examining data/numba-0.51.2/numba/_hashtable.c
Examining data/numba-0.51.2/numba/_hashtable.h
Examining data/numba-0.51.2/numba/_helperlib.c
Examining data/numba-0.51.2/numba/_helpermod.c
Examining data/numba-0.51.2/numba/_lapack.c
Examining data/numba-0.51.2/numba/_npymath_exports.c
Examining data/numba-0.51.2/numba/_numba_common.h
Examining data/numba-0.51.2/numba/_pymodule.h
Examining data/numba-0.51.2/numba/_random.c
Examining data/numba-0.51.2/numba/_typeof.c
Examining data/numba-0.51.2/numba/_typeof.h
Examining data/numba-0.51.2/numba/_unicodetype_db.h
Examining data/numba-0.51.2/numba/capsulethunk.h
Examining data/numba-0.51.2/numba/cext/cext.h
Examining data/numba-0.51.2/numba/cext/dictobject.c
Examining data/numba-0.51.2/numba/cext/dictobject.h
Examining data/numba-0.51.2/numba/cext/listobject.c
Examining data/numba-0.51.2/numba/cext/listobject.h
Examining data/numba-0.51.2/numba/cext/utils.c
Examining data/numba-0.51.2/numba/core/runtime/_nrt_python.c
Examining data/numba-0.51.2/numba/core/runtime/_nrt_pythonmod.c
Examining data/numba-0.51.2/numba/core/runtime/nrt.c
Examining data/numba-0.51.2/numba/core/runtime/nrt.h
Examining data/numba-0.51.2/numba/core/runtime/nrt_external.h
Examining data/numba-0.51.2/numba/core/typeconv/_typeconv.cpp
Examining data/numba-0.51.2/numba/core/typeconv/test.cpp
Examining data/numba-0.51.2/numba/core/typeconv/typeconv.cpp
Examining data/numba-0.51.2/numba/core/typeconv/typeconv.hpp
Examining data/numba-0.51.2/numba/cuda/cudadrv/_extras.c
Examining data/numba-0.51.2/numba/experimental/jitclass/_box.c
Examining data/numba-0.51.2/numba/mathnames.h
Examining data/numba-0.51.2/numba/mviewbuf.c
Examining data/numba-0.51.2/numba/np/ufunc/_internal.c
Examining data/numba-0.51.2/numba/np/ufunc/_internal.h
Examining data/numba-0.51.2/numba/np/ufunc/_num_threads.c
Examining data/numba-0.51.2/numba/np/ufunc/_ufunc.c
Examining data/numba-0.51.2/numba/np/ufunc/gufunc_scheduler.cpp
Examining data/numba-0.51.2/numba/np/ufunc/gufunc_scheduler.h
Examining data/numba-0.51.2/numba/np/ufunc/omppool.cpp
Examining data/numba-0.51.2/numba/np/ufunc/tbbpool.cpp
Examining data/numba-0.51.2/numba/np/ufunc/workqueue.c
Examining data/numba-0.51.2/numba/np/ufunc/workqueue.h
Examining data/numba-0.51.2/numba/pycc/modulemixin.c

FINAL RESULTS:

data/numba-0.51.2/numba/_dynfunc.c:239:5:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
    strcpy(str, tmp);
data/numba-0.51.2/numba/core/runtime/nrt.c:443:4:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
   vfprintf(stderr, fmt, args);
data/numba-0.51.2/numba/np/ufunc/workqueue.c:152:5:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
    InitializeCriticalSection(&qc->cs);
data/numba-0.51.2/numba/np/ufunc/workqueue.c:159:5:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
    EnterCriticalSection(&qc->cs);
data/numba-0.51.2/numba/_dynfunc.c:314:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char state[0];
data/numba-0.51.2/numba/_dynfunc.c:431:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(gen->state, initial_state, gen_state_size);
data/numba-0.51.2/numba/_hashtable.c:341:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(_Numba_HASHTABLE_ENTRY_DATA(entry), data, data_size);
data/numba-0.51.2/numba/_hashtable.h:42:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(DATA, _Numba_HASHTABLE_ENTRY_DATA(ENTRY), DATA_SIZE); \
data/numba-0.51.2/numba/_typeof.c:56:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char static_buf[40];
data/numba-0.51.2/numba/_typeof.c:81:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(dest->buf, src->buf, src->n);
data/numba-0.51.2/numba/_typeof.c:165:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(w->buf + w->n, s, N);
data/numba-0.51.2/numba/cext/dictobject.c:416:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(dst, src, dk->key_size);
data/numba-0.51.2/numba/cext/dictobject.c:421:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(dst, src, dk->val_size);
data/numba-0.51.2/numba/cext/dictobject.c:810:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(&d->keys->methods, &oldkeys->methods, sizeof(type_based_methods_table));
data/numba-0.51.2/numba/cext/dictobject.c:819:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(newentries, oldentries, numentries * oldkeys->entry_size);
data/numba-0.51.2/numba/cext/dictobject.c:836:13:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
            memcpy(
data/numba-0.51.2/numba/cext/dictobject.c:1017:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(&d->keys->methods, methods, sizeof(type_based_methods_table));
data/numba-0.51.2/numba/cext/dictobject.c:1044:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char got_key[4];
data/numba-0.51.2/numba/cext/dictobject.c:1045:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char got_value[8];
data/numba-0.51.2/numba/cext/dictobject.c:1124:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    CHECK (memcpy(got_value, "7654321", d->keys->val_size));
data/numba-0.51.2/numba/cext/dictobject.c:1128:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    CHECK (memcpy(got_value, "1234567", d->keys->val_size));
data/numba-0.51.2/numba/cext/dictobject.c:1133:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    CHECK (memcpy(got_value, "1234569", d->keys->val_size));
data/numba-0.51.2/numba/cext/dictobject.c:1137:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    CHECK (memcpy(got_value, "0_0_0_1", d->keys->val_size));
data/numba-0.51.2/numba/cext/dictobject.c:1141:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    CHECK (memcpy(got_value, "0_0_0_2", d->keys->val_size));
data/numba-0.51.2/numba/cext/dictobject.c:1145:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    CHECK (memcpy(got_value, "0_0_0_3", d->keys->val_size));
data/numba-0.51.2/numba/cext/listobject.c:90:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(dst, src, lp->item_size);
data/numba-0.51.2/numba/cext/listobject.c:128:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(&lp->methods, methods, sizeof(list_type_based_methods_table));
data/numba-0.51.2/numba/cext/listobject.c:609:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char got_item[4] = "\x00\x00\x00\x00";
data/numba-0.51.2/numba/cuda/cudadrv/_extras.c:15:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char reserved[CUDA_IPC_HANDLE_SIZE];
data/numba-0.51.2/numba/np/ufunc/_internal.c:512:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(functions, ufunc->functions,
data/numba-0.51.2/numba/np/ufunc/_internal.c:516:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(data, ufunc->data, sizeof(void *) * ufunc->ntypes);
data/numba-0.51.2/numba/np/ufunc/_internal.c:519:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(types, ufunc->types, sizeof(char) * ufunc->ntypes *
data/numba-0.51.2/numba/np/ufunc/omppool.cpp:169:13:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
            memcpy(count_space, dimensions, arg_len * sizeof(size_t));
data/numba-0.51.2/numba/np/ufunc/tbbpool.cpp:164:13:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
            memcpy(count_space, dimensions, arg_len * sizeof(size_t));
data/numba-0.51.2/numba/np/ufunc/workqueue.c:405:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(count_space, dimensions, arg_len * sizeof(size_t));
data/numba-0.51.2/numba/_dynfunc.c:234:27:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    str = PyObject_Malloc(strlen(tmp) + 1);
data/numba-0.51.2/numba/_typeof.c:162:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        size_t N = strlen(s) + 1;

ANALYSIS SUMMARY:

Hits = 37
Lines analyzed = 21185 in approximately 0.73 seconds (29095 lines/second)
Physical Source Lines of Code (SLOC) = 16701
Hits@level = [0] 108 [1]   2 [2]  31 [3]   2 [4]   2 [5]   0
Hits@level+ = [0+] 145 [1+]  37 [2+]  35 [3+]   4 [4+]   2 [5+]   0
Hits/KSLOC@level+ = [0+] 8.68211 [1+] 2.21544 [2+] 2.09568 [3+] 0.239507 [4+] 0.119753 [5+]   0
Dot directories skipped = 2 (--followdotdir overrides)
Minimum risk level = 1
Not every hit is necessarily a security vulnerability.
There may be other security vulnerabilities; review your code!
See 'Secure Programming HOWTO'
(https://dwheeler.com/secure-programs) for more information.