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/cvxopt-1.2.5+dfsg/src/C/amd.c
Examining data/cvxopt-1.2.5+dfsg/src/C/base.c
Examining data/cvxopt-1.2.5+dfsg/src/C/blas_redefines.h
Examining data/cvxopt-1.2.5+dfsg/src/C/cholmod.c
Examining data/cvxopt-1.2.5+dfsg/src/C/cvxopt.h
Examining data/cvxopt-1.2.5+dfsg/src/C/dense.c
Examining data/cvxopt-1.2.5+dfsg/src/C/dsdp.c
Examining data/cvxopt-1.2.5+dfsg/src/C/fftw.c
Examining data/cvxopt-1.2.5+dfsg/src/C/glpk.c
Examining data/cvxopt-1.2.5+dfsg/src/C/gsl.c
Examining data/cvxopt-1.2.5+dfsg/src/C/misc.h
Examining data/cvxopt-1.2.5+dfsg/src/C/misc_solvers.c
Examining data/cvxopt-1.2.5+dfsg/src/C/sparse.c
Examining data/cvxopt-1.2.5+dfsg/src/C/umfpack.c
Examining data/cvxopt-1.2.5+dfsg/src/C/blas.c
Examining data/cvxopt-1.2.5+dfsg/src/C/lapack.c

FINAL RESULTS:

data/cvxopt-1.2.5+dfsg/src/C/amd.c:48: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  name[20];
data/cvxopt-1.2.5+dfsg/src/C/amd.c:80: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_str[100];
data/cvxopt-1.2.5+dfsg/src/C/amd.c:95:17:  [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_str, "invalid value for AMD parameter: %-.20s",
data/cvxopt-1.2.5+dfsg/src/C/amd.c:101:17:  [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_str, "invalid value for AMD parameter: "
data/cvxopt-1.2.5+dfsg/src/C/amd.c:192: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(rowind + colptr[j], (int_t *) SP_ROW(A) + k,
data/cvxopt-1.2.5+dfsg/src/C/amd.c:200: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(rowind + colptr[j], (int_t *) (SP_ROW(A) +
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:85: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_str[100];
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:116:17:  [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_str, "invalid value for CHOLMOD parameter:" \
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:137:17:  [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_str, "invalid value for CHOLMOD parameter:" \
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:216: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(B->p, SP_COL(A), (SP_NCOLS(A)+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:545:2:  [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(b->x, x->x, n*E_SIZE[MAT_ID(B)]);
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:642: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(SP_COL(X), Xc->p, (Xc->ncol+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:643: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(SP_ROW(X), Xc->i, ((int_t *)Xc->p)[Xc->ncol]*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:644: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(SP_VAL(X), Xc->x,
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:803: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(b->x, x->x, SP_NROWS(A)*E_SIZE[MAT_ID(B)]);
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:937: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(SP_COL(X), (int_t *) Xc->p, (Xc->ncol+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:938: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(SP_ROW(X), (int_t *) Xc->i,
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:940: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(SP_VAL(X), (double *) Xc->x,
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:1064: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(SP_COL(ret), Ls->p, (Ls->ncol+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:1065: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(SP_ROW(ret), Ls->i, (Ls->nzmax)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/cholmod.c:1066: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(SP_VAL(ret), Ls->x, (Ls->nzmax)*E_SIZE[SP_ID(ret)]);
data/cvxopt-1.2.5+dfsg/src/C/dense.c:115: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(dest, src->buffer, (size_t)E_SIZE[src->id]*MAT_LGT(src) );
data/cvxopt-1.2.5+dfsg/src/C/dense.c:1196:3:  [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->buffer, view.buf, E_SIZE[self->id]*MAT_LGT(self));
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:125: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_str[100];
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:202:21:  [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_str, "invalid value for integer "
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:221:21:  [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_str, "invalid value for nonnegative "
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:237:21:  [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_str, "invalid value for float "
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:266: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(lp_values, MAT_BUFD(Gl), ml*n*sizeof(double));
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:273: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(lp_values, SP_VALD(Gl), SP_NNZ(Gl)*sizeof(double));
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:281: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(lp_values+lp_colptr[n], MAT_BUFD(hl), ml*sizeof(double));
data/cvxopt-1.2.5+dfsg/src/C/dsdp.c:456: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(MAT_BUFD(zl), zlvals, ml*sizeof(double));
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:734:37:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
                for (k=0; k<n; k++) memcpy((double *) Ac + k*n,
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:755:37:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
                for (k=0; k<n; k++) memcpy((complex_t *) Ac + k*n,
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:1089: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.
                    memcpy((double *) Ac + kl + k*(2*kl+ku+1),
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:1114: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.
                    memcpy((complex_t *) Ac + kl + k*(2*kl+ku+1),
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:3061: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.
                    memcpy((double *) Ac + k*n, MAT_BUFD(A) + oA + k*ldA,
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:3108: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.
                    memcpy((complex_t *) Ac + k*n, 
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:3244: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.
                    memcpy((double *) Ac + k*n, MAT_BUFD(A) + oA + k*ldA,
data/cvxopt-1.2.5+dfsg/src/C/lapack.c:3289: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.
                    memcpy((complex_t *) Ac + k*n, 
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:159: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(dest, src, n*E_SIZE[dest_id]);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:244:3:  [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(ret->rowind, src->rowind, CCS_NNZ(src)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:245:3:  [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(ret->colptr, src->colptr, (src->ncols+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:908: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(Z->values, X, sizeof(double)*mn);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:1040: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(Z->values, X, sizeof(double complex)*mn);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:1042: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(Z->values, X, sizeof(_Dcomplex)*mn);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2565:3:  [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(SP_COL(ret), SP_COL(A), (SP_NCOLS(A)+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2566:3:  [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(SP_ROW(ret), SP_ROW(A), SP_NNZ(A)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2884:3:  [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(MAT_BUF(ret), SP_VAL(self), SP_NNZ(self)*E_SIZE[SP_ID(self)]);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2907: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(SP_VAL(self), MAT_BUF(value), MAT_LGT(value)*E_SIZE[SP_ID(self)]);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2917:3:  [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(MAT_BUF(A), SP_ROW(self), SP_NNZ(self)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2949:3:  [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(MAT_BUF(colptr), SP_COL(self), (SP_NCOLS(self)+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2950:3:  [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(MAT_BUF(rowind), SP_ROW(self), SP_NNZ(self)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:2951:3:  [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(MAT_BUF(val),    SP_VAL(self), SP_NNZ(self)*E_SIZE[SP_ID(self)]);
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:3037:3:  [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(SP_COL(ret), SP_COL(self), (SP_NCOLS(self)+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:3038:3:  [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(SP_ROW(ret), SP_ROW(self), SP_NNZ(self)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:3058:3:  [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(SP_COL(ret), SP_COL(self), (SP_NCOLS(self)+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:3059:3:  [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(SP_ROW(ret), SP_ROW(self), SP_NNZ(self)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:4128:3:  [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(SP_ROW(x), SP_ROW(self), SP_NNZ(self)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/sparse.c:4129:3:  [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(SP_COL(x), SP_COL(self), (SP_NCOLS(self)+1)*sizeof(int_t));
data/cvxopt-1.2.5+dfsg/src/C/umfpack.c:40:8:  [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 umfpack_error[20];
data/cvxopt-1.2.5+dfsg/src/C/umfpack.c:232: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((unsigned char*)B->buffer + (k*ldB + oB)*E_SIZE[SP_ID(A)], x,
data/cvxopt-1.2.5+dfsg/src/C/umfpack.c:555:6:  [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((unsigned char*)B->buffer + (k*ldB + oB)*E_SIZE[SP_ID(A)], x,

ANALYSIS SUMMARY:

Hits = 62
Lines analyzed = 27214 in approximately 0.92 seconds (29487 lines/second)
Physical Source Lines of Code (SLOC) = 23220
Hits@level = [0]   7 [1]   0 [2]  62 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  69 [1+]  62 [2+]  62 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 2.97158 [1+] 2.67011 [2+] 2.67011 [3+]   0 [4+]   0 [5+]   0
Dot directories skipped = 3 (--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.