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/python-cffi-1.14.4/testing/embedding/perf-test.c
Examining data/python-cffi-1.14.4/testing/embedding/thread2-test.c
Examining data/python-cffi-1.14.4/testing/embedding/add_recursive-test.c
Examining data/python-cffi-1.14.4/testing/embedding/add1-test.c
Examining data/python-cffi-1.14.4/testing/embedding/tlocal-test.c
Examining data/python-cffi-1.14.4/testing/embedding/thread3-test.c
Examining data/python-cffi-1.14.4/testing/embedding/thread-test.h
Examining data/python-cffi-1.14.4/testing/embedding/add2-test.c
Examining data/python-cffi-1.14.4/testing/embedding/thread1-test.c
Examining data/python-cffi-1.14.4/demo/embedding_test.c
Examining data/python-cffi-1.14.4/demo/manual.c
Examining data/python-cffi-1.14.4/cffi/_cffi_errors.h
Examining data/python-cffi-1.14.4/cffi/parse_c_type.h
Examining data/python-cffi-1.14.4/cffi/_embedding.h
Examining data/python-cffi-1.14.4/cffi/_cffi_include.h
Examining data/python-cffi-1.14.4/c/realize_c_type.c
Examining data/python-cffi-1.14.4/c/wchar_helper_3.h
Examining data/python-cffi-1.14.4/c/_cffi_backend.c
Examining data/python-cffi-1.14.4/c/cdlopen.c
Examining data/python-cffi-1.14.4/c/malloc_closure.h
Examining data/python-cffi-1.14.4/c/cglob.c
Examining data/python-cffi-1.14.4/c/libffi_msvc/ffitarget.h
Examining data/python-cffi-1.14.4/c/libffi_msvc/types.c
Examining data/python-cffi-1.14.4/c/libffi_msvc/win32.c
Examining data/python-cffi-1.14.4/c/libffi_msvc/ffi_common.h
Examining data/python-cffi-1.14.4/c/libffi_msvc/ffi.h
Examining data/python-cffi-1.14.4/c/libffi_msvc/prep_cif.c
Examining data/python-cffi-1.14.4/c/libffi_msvc/ffi.c
Examining data/python-cffi-1.14.4/c/libffi_msvc/fficonfig.h
Examining data/python-cffi-1.14.4/c/wchar_helper.h
Examining data/python-cffi-1.14.4/c/misc_thread_common.h
Examining data/python-cffi-1.14.4/c/misc_thread_posix.h
Examining data/python-cffi-1.14.4/c/parse_c_type.c
Examining data/python-cffi-1.14.4/c/misc_win32.h
Examining data/python-cffi-1.14.4/c/minibuffer.h
Examining data/python-cffi-1.14.4/c/lib_obj.c
Examining data/python-cffi-1.14.4/c/commontypes.c
Examining data/python-cffi-1.14.4/c/call_python.c
Examining data/python-cffi-1.14.4/c/file_emulator.h
Examining data/python-cffi-1.14.4/c/ffi_obj.c
Examining data/python-cffi-1.14.4/c/cffi1_module.c

FINAL RESULTS:

data/python-cffi-1.14.4/c/cffi1_module.c:202: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(module_name_with_lib, module_name);
data/python-cffi-1.14.4/c/lib_obj.c:193:5:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
    sprintf(funcbuilder.bufferp - 1, format, libname);
data/python-cffi-1.14.4/c/misc_win32.h:219:13:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
            sprintf(mangled_name, "_%s@%d", symbol, i * 4);
data/python-cffi-1.14.4/c/realize_c_type.c:287:9:  [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(target, &srcname[1]);
data/python-cffi-1.14.4/c/realize_c_type.c:290:9:  [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(target, prefix);
data/python-cffi-1.14.4/c/realize_c_type.c:291:9:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
        strcat(target, srcname);
data/python-cffi-1.14.4/c/realize_c_type.c:299:9:  [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(target, &srcname[7]);
data/python-cffi-1.14.4/c/realize_c_type.c:302:9:  [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(target, &srcname[6]);
data/python-cffi-1.14.4/c/realize_c_type.c:305:9:  [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(target, &srcname[5]);
data/python-cffi-1.14.4/c/realize_c_type.c:309:9:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
        strcat(target, srcname);
data/python-cffi-1.14.4/cffi/_embedding.h:88:9:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
        InitializeCriticalSection(&_cffi_embed_startup_lock);
data/python-cffi-1.14.4/cffi/_embedding.h:100:5:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
    EnterCriticalSection(&_cffi_embed_startup_lock);
data/python-cffi-1.14.4/c/_cffi_backend.c:245: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 ct_name[1];        /* string, e.g. "int *" for pointers to ints */
data/python-cffi-1.14.4/c/_cffi_backend.c:414: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(p, ct_base->ct_name, ct_base->ct_name_position);
data/python-cffi-1.14.4/c/_cffi_backend.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(p, extra_text, extra_name_len);
data/python-cffi-1.14.4/c/_cffi_backend.c:418: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(p, ct_base->ct_name + ct_base->ct_name_position,
data/python-cffi-1.14.4/c/_cffi_backend.c:900: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(&r, target, sizeof(type));   \
data/python-cffi-1.14.4/c/_cffi_backend.c:936: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(target, src, size);
data/python-cffi-1.14.4/c/_cffi_backend.c:983: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(&real_part, target + 0,             sizeof(float));
data/python-cffi-1.14.4/c/_cffi_backend.c:984: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(&imag_part, target + sizeof(float), sizeof(float));
data/python-cffi-1.14.4/c/_cffi_backend.c:990: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(&r, target, 2*sizeof(double));
data/python-cffi-1.14.4/c/_cffi_backend.c:1229: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 err_got[80];
data/python-cffi-1.14.4/c/_cffi_backend.c:1253: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 err_got[80];
data/python-cffi-1.14.4/c/_cffi_backend.c:1503: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, srcdata, n);
data/python-cffi-1.14.4/c/_cffi_backend.c:1544: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, cd->c_data, n * ctitem->ct_size);
data/python-cffi-1.14.4/c/_cffi_backend.c:1619: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 buf[sizeof(PY_LONG_LONG)];
data/python-cffi-1.14.4/c/_cffi_backend.c:1757:17:  [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, ((CDataObject *)init)->c_data, ct->ct_size);
data/python-cffi-1.14.4/c/_cffi_backend.c:2099:13:  [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 buffer[128];   /* big enough */
data/python-cffi-1.14.4/c/_cffi_backend.c:2102:13:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
            sprintf(buffer, "%LE", lvalue);
data/python-cffi-1.14.4/c/_cffi_backend.c:2617: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(cdata, src, length);
data/python-cffi-1.14.4/c/_cffi_backend.c:3748: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(cd->c_data, data, datasize);
data/python-cffi-1.14.4/c/_cffi_backend.c:4035: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 err_buf[80];
data/python-cffi-1.14.4/c/_cffi_backend.c:4087: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 ignored[80];
data/python-cffi-1.14.4/c/_cffi_backend.c:4605: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(pkey, unique_key, keylength * sizeof(void *));
data/python-cffi-1.14.4/c/_cffi_backend.c:4796: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(td->ct_name, name, name_size);
data/python-cffi-1.14.4/c/_cffi_backend.c:4895: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 extra_text[32];
data/python-cffi-1.14.4/c/_cffi_backend.c:4912:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(extra_text, "[]");
data/python-cffi-1.14.4/c/_cffi_backend.c:4917:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(extra_text, "[%llu]", (unsigned PY_LONG_LONG)length);
data/python-cffi-1.14.4/c/_cffi_backend.c:4947: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(td->ct_name, "void", name_size);
data/python-cffi-1.14.4/c/_cffi_backend.c:4971: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(td->ct_name, name, namelen + 1);
data/python-cffi-1.14.4/c/_cffi_backend.c:5739: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(fb->bufferp, piece, piecelen);
data/python-cffi-1.14.4/c/_cffi_backend.c:6149: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(result, PyBytes_AS_STRING(py_rawerr),
data/python-cffi-1.14.4/c/_cffi_backend.c:6479: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(td->ct_name, ename, name_size);
data/python-cffi-1.14.4/c/_cffi_backend.c:6678: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(p, ct->ct_name, ct->ct_name_position);
data/python-cffi-1.14.4/c/_cffi_backend.c:6680: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(p, replace_with, replacelen);
data/python-cffi-1.14.4/c/_cffi_backend.c:6682: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(p, ct->ct_name + ct->ct_name_position,
data/python-cffi-1.14.4/c/cffi1_module.c:153:20:  [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.
    module_name = (char *)raw[0];
data/python-cffi-1.14.4/c/cffi1_module.c:155:16:  [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.
    exports = (char *)raw[2];
data/python-cffi-1.14.4/c/cffi1_module.c:174: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(exports, (char *)cffi_exports, num_exports * sizeof(void *));
data/python-cffi-1.14.4/c/cffi1_module.c:203:5:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
    strcat(module_name_with_lib, ".lib");
data/python-cffi-1.14.4/c/ffi_obj.c:601: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(p, ct->ct_name, ct->ct_name_position);
data/python-cffi-1.14.4/c/ffi_obj.c:604: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(p, ct->ct_name + ct->ct_name_position,
data/python-cffi-1.14.4/c/ffi_obj.c:655: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(p, replace_with, replace_with_len);
data/python-cffi-1.14.4/c/lib_obj.c:22: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 doc[1];
data/python-cffi-1.14.4/c/libffi_msvc/ffi.c:116:4:  [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(argp, *p_argv, z);
data/python-cffi-1.14.4/c/libffi_msvc/ffi.c:431:21:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
#define BYTES(text) memcpy(tramp, text, sizeof(text)), tramp += sizeof(text)-1
data/python-cffi-1.14.4/c/libffi_msvc/ffi.h:187:3:  [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      data[FFI_SIZEOF_ARG];
data/python-cffi-1.14.4/c/libffi_msvc/ffi.h:218:3:  [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 tramp[FFI_TRAMPOLINE_SIZE];
data/python-cffi-1.14.4/c/libffi_msvc/ffi.h:238:3:  [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 tramp[FFI_TRAMPOLINE_SIZE];
data/python-cffi-1.14.4/c/libffi_msvc/ffi_common.h:23:11:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
#  define memcpy(d, s, n) bcopy ((s), (d), (n))
data/python-cffi-1.14.4/c/libffi_msvc/ffi_common.h:23:27:  [2] (buffer) bcopy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
#  define memcpy(d, s, n) bcopy ((s), (d), (n))
data/python-cffi-1.14.4/c/malloc_closure.h:40:9:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    f = fopen ("/proc/self/status", "r");
data/python-cffi-1.14.4/c/minibuffer.h:83: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(self->mb_data + left, src_view.buf, count);
data/python-cffi-1.14.4/c/misc_win32.h:143: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 s_small_buf[40]; /* Room for "Windows Error 0xFFFFFFFFFFFFFFFF" */
data/python-cffi-1.14.4/c/misc_win32.h:171:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(s_small_buf, "Windows Error 0x%X", err);
data/python-cffi-1.14.4/c/misc_win32.h:236:12:  [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.
    static char buf[32];
data/python-cffi-1.14.4/c/misc_win32.h:240:5:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
    sprintf(buf, "error 0x%x", (unsigned int)dw);
data/python-cffi-1.14.4/c/realize_c_type.c:196: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[64];
data/python-cffi-1.14.4/c/realize_c_type.c:228:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(got, "%llu (0x%llx)", value, value);
data/python-cffi-1.14.4/c/realize_c_type.c:230:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(got, "%lld", (long long)value);
data/python-cffi-1.14.4/c/wchar_helper.h:129:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(err_got, "unicode string of length %zd",
data/python-cffi-1.14.4/c/wchar_helper.h:136:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(err_got, "larger-than-0xFFFF character");
data/python-cffi-1.14.4/c/wchar_helper.h:159:5:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
    sprintf(err_got, "unicode string of length %zd",
data/python-cffi-1.14.4/c/wchar_helper_3.h:63:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(err_got, "unicode string of length %zd",
data/python-cffi-1.14.4/c/wchar_helper_3.h:71:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(err_got, "larger-than-0xFFFF character");
data/python-cffi-1.14.4/c/wchar_helper_3.h:83:9:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
        sprintf(err_got, "unicode string of length %zd",
data/python-cffi-1.14.4/cffi/_cffi_include.h:184:21:  [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.
    ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[10])
data/python-cffi-1.14.4/cffi/_cffi_include.h:186:7:  [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 *(*)(PyObject *, struct _cffi_ctypedescr *))_cffi_exports[11])
data/python-cffi-1.14.4/cffi/_cffi_include.h:196:21:  [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.
    ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[16])
data/python-cffi-1.14.4/cffi/_cffi_include.h:198:14:  [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.
    ((int(*)(char *, struct _cffi_ctypedescr *, PyObject *))_cffi_exports[17])
data/python-cffi-1.14.4/cffi/_cffi_include.h:200:21:  [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.
    ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[18])
data/python-cffi-1.14.4/cffi/_cffi_include.h:211:33:  [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.
                    PyObject *, char **))_cffi_exports[23])
data/python-cffi-1.14.4/cffi/_cffi_include.h:213:14:  [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.
    ((int(*)(char *, struct _cffi_ctypedescr *, PyObject *))_cffi_exports[24])
data/python-cffi-1.14.4/cffi/_cffi_include.h:216:42:  [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.
    ((void(*)(struct _cffi_externpy_s *, char *))_cffi_exports[_CFFI_CPIDX])
data/python-cffi-1.14.4/demo/manual.c:60:42:  [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.
    if (_cffi_convert_array_from_object((char *)x1, _cffi_types[1], arg1) < 0)
data/python-cffi-1.14.4/c/_cffi_backend.c:402:25:  [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).
    int base_name_len = strlen(ct_base->ct_name);
data/python-cffi-1.14.4/c/_cffi_backend.c:403:26:  [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).
    int extra_name_len = strlen(extra_text);
data/python-cffi-1.14.4/c/_cffi_backend.c:4791:17:  [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).
    name_size = strlen(ptypes->name) + 1;
data/python-cffi-1.14.4/c/_cffi_backend.c:4809:28:  [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).
    td->ct_name_position = strlen(td->ct_name);
data/python-cffi-1.14.4/c/_cffi_backend.c:4941:21:  [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).
    int name_size = strlen("void") + 1;
data/python-cffi-1.14.4/c/_cffi_backend.c:4950:28:  [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).
    td->ct_name_position = strlen("void");
data/python-cffi-1.14.4/c/_cffi_backend.c:4962:19:  [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).
    int namelen = strlen(name);
data/python-cffi-1.14.4/c/_cffi_backend.c:5760: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).
    fb_cat_name(fb, repl, strlen(repl));
data/python-cffi-1.14.4/c/_cffi_backend.c:5762:13:  [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).
        i = strlen(repl) - 1;      /* between '(*' and ')' */
data/python-cffi-1.14.4/c/_cffi_backend.c:5780:40:  [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).
        fb_cat_name(fb, farg->ct_name, strlen(farg->ct_name));
data/python-cffi-1.14.4/c/_cffi_backend.c:5793:17:  [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).
                strlen(fresult->ct_name) - fresult->ct_name_position + 1);
data/python-cffi-1.14.4/c/_cffi_backend.c:6474:17:  [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).
    name_size = strlen(ename) + 1;
data/python-cffi-1.14.4/c/_cffi_backend.c:6675:15:  [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).
    namelen = strlen(ct->ct_name);
data/python-cffi-1.14.4/c/_cffi_backend.c:6676:18:  [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).
    replacelen = strlen(replace_with);
data/python-cffi-1.14.4/c/_cffi_backend.c:6721:26:  [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).
                length = strlen(start);
data/python-cffi-1.14.4/c/call_python.c:101:55:  [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).
    index = search_in_globals(&types_builder->ctx, s, strlen(s));
data/python-cffi-1.14.4/c/cdlopen.c:303:38:  [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).
            nenums[i].name = e; e += strlen(e) + 1;
data/python-cffi-1.14.4/c/cffi1_module.c:201:35:  [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).
    module_name_with_lib = alloca(strlen(module_name) + 5);
data/python-cffi-1.14.4/c/commontypes.c:197: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).
    return entry + strlen(entry) + 1;
data/python-cffi-1.14.4/c/commontypes.c:206:45:  [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).
        PyObject *o = PyText_FromString(s + strlen(s) + 1);
data/python-cffi-1.14.4/c/ffi_obj.c:100:62:  [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).
    index = search_in_globals(&ffi->types_builder.ctx, name, strlen(name));
data/python-cffi-1.14.4/c/ffi_obj.c:150:21:  [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 length = strlen(input_text);
data/python-cffi-1.14.4/c/ffi_obj.c:595:21:  [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).
    base_name_len = strlen(ct->ct_name);
data/python-cffi-1.14.4/c/ffi_obj.c:637:24:  [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).
    replace_with_len = strlen(replace_with);
data/python-cffi-1.14.4/c/ffi_obj.c:1205:42:  [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).
                                         strlen(s->name));
data/python-cffi-1.14.4/c/lib_obj.c:175:26:  [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).
                         strlen(format) + strlen(libname));
data/python-cffi-1.14.4/c/lib_obj.c:175:43:  [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).
                         strlen(format) + strlen(libname));
data/python-cffi-1.14.4/c/lib_obj.c:220:55:  [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).
    index = search_in_globals(&types_builder->ctx, s, strlen(s));
data/python-cffi-1.14.4/c/misc_win32.h:215:41:  [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).
        char *mangled_name = alloca(1 + strlen(symbol) + 1 + 3 + 1);
data/python-cffi-1.14.4/c/realize_c_type.c:308:9:  [1] (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). Risk is low because the source is a constant character.
        strcpy(target, "$");
data/python-cffi-1.14.4/c/realize_c_type.c:345:37:  [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).
            char *name = alloca(8 + strlen(s->name));
data/python-cffi-1.14.4/c/realize_c_type.c:524:41:  [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).
                char *name = alloca(6 + strlen(e->name));
data/python-cffi-1.14.4/c/realize_c_type.c:722:24:  [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).
        p = alloca(2 + strlen(ct->ct_name));
data/python-cffi-1.14.4/c/realize_c_type.c:725:55:  [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).
        n = search_in_struct_unions(&builder->ctx, p, strlen(p));

ANALYSIS SUMMARY:

Hits = 119
Lines analyzed = 17984 in approximately 0.44 seconds (41144 lines/second)
Physical Source Lines of Code (SLOC) = 14263
Hits@level = [0]  18 [1]  34 [2]  73 [3]   2 [4]  10 [5]   0
Hits@level+ = [0+] 137 [1+] 119 [2+]  85 [3+]  12 [4+]  10 [5+]   0
Hits/KSLOC@level+ = [0+] 9.60527 [1+] 8.34327 [2+] 5.95948 [3+] 0.841338 [4+] 0.701115 [5+]   0
Dot directories skipped = 1 (--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.