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/ssm-1.4.0/sup_pairwise.cpp
Examining data/ssm-1.4.0/sup_defs.h
Examining data/ssm-1.4.0/superpose.cpp
Examining data/ssm-1.4.0/sup_multiple.cpp
Examining data/ssm-1.4.0/ssm/ssm_defs.h
Examining data/ssm-1.4.0/ssm/ssm_vxedge.h
Examining data/ssm-1.4.0/ssm/ssm_graph.cpp
Examining data/ssm-1.4.0/ssm/ssm_align.cpp
Examining data/ssm-1.4.0/ssm/ssm_graph.h
Examining data/ssm-1.4.0/ssm/ssm_superpose.cpp
Examining data/ssm-1.4.0/ssm/ssm_align.h
Examining data/ssm-1.4.0/ssm/ssm_csia.h
Examining data/ssm-1.4.0/ssm/ssm_malign.cpp
Examining data/ssm-1.4.0/ssm/ssm_csia.cpp
Examining data/ssm-1.4.0/ssm/ssm_vxedge.cpp
Examining data/ssm-1.4.0/ssm/ssm_malign.h
Examining data/ssm-1.4.0/ssm/ssm_superpose.h
Examining data/ssm-1.4.0/sup_multiple.h
Examining data/ssm-1.4.0/sup_pairwise.h

FINAL RESULTS:

data/ssm-1.4.0/ssm/ssm_align.cpp:722:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf ( S," |%1s%1s %2s%3s%4i%1s|",
data/ssm-1.4.0/ssm/ssm_align.cpp:753:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf ( S," %1s%5.2f%1s%1s",SI,dist,SI,SI );
data/ssm-1.4.0/ssm/ssm_align.cpp:815: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 ( R[rowNo].chID1   ,A1->GetChainID() );
data/ssm-1.4.0/ssm/ssm_align.cpp:816: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 ( R[rowNo].resName1,A1->GetResName() );
data/ssm-1.4.0/ssm/ssm_align.cpp:817: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 ( R[rowNo].insCode1,A1->GetInsCode() );
data/ssm-1.4.0/ssm/ssm_align.cpp:825: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 ( R[rowNo].chID2   ,A2->GetChainID() );
data/ssm-1.4.0/ssm/ssm_align.cpp:826: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 ( R[rowNo].resName2,A2->GetResName() );
data/ssm-1.4.0/ssm/ssm_align.cpp:827: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 ( R[rowNo].insCode2,A2->GetInsCode() );
data/ssm-1.4.0/ssm/ssm_graph.cpp:203:30:  [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).
      if (chain[i][0]!=' ')  strcat ( S,chain[i] );
data/ssm-1.4.0/ssm/ssm_graph.cpp:222:7:  [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 ( chID ,A[i]->GetChainID() );
data/ssm-1.4.0/ssm/ssm_graph.cpp:223:7:  [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 ( rName,A[i]->GetResName() );
data/ssm-1.4.0/ssm/ssm_graph.cpp:224:7:  [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 ( iCode,A[i]->GetInsCode() );
data/ssm-1.4.0/ssm/ssm_graph.cpp:225:7:  [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 ( aLoc ,A[i]->altLoc       );
data/ssm-1.4.0/ssm/ssm_graph.cpp:239:15:  [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 ( aLoc,A[i]->altLoc );
data/ssm-1.4.0/ssm/ssm_graph.cpp:247:15:  [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 ( aLoc,A[i]->altLoc );
data/ssm-1.4.0/ssm/ssm_graph.cpp:255:15:  [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 ( aLoc,A[i]->altLoc );
data/ssm-1.4.0/ssm/ssm_graph.cpp:289:29:  [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).
                      else  strcpy ( S,V[0]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:293:31:  [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).
                        else  strcpy ( N,V[i]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:295:26:  [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).
      if (!strstr(S,N))  strcat ( S,N );
data/ssm-1.4.0/ssm/ssm_graph.cpp:472:7:  [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 ( chID,V[i]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:878:7:  [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 ( chID,V[vn]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:881:7:  [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 ( initICode,V[vn]->initICode );
data/ssm-1.4.0/ssm/ssm_graph.cpp:882:7:  [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 ( endICode ,V[vn]->endICode  );
data/ssm-1.4.0/ssm/ssm_graph.cpp:899:7:  [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 ( chID,V[vn]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:991: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 ( chain[nchains],V[i]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:1026: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 ( S[nGraphs],V[i]->chainID );
data/ssm-1.4.0/ssm/ssm_graph.cpp:1037: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       ( G[i]->devChain,S[i]     );
data/ssm-1.4.0/ssm/ssm_graph.cpp:1071:3:  [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           ( devChain,G->devChain );
data/ssm-1.4.0/ssm/ssm_malign.cpp:350:3:  [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 ( name1,M.name1 );
data/ssm-1.4.0/ssm/ssm_malign.cpp:351:3:  [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 ( name2,M.name2 );
data/ssm-1.4.0/ssm/ssm_malign.cpp:352:3:  [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 ( chID ,M.chID  );
data/ssm-1.4.0/ssm/ssm_malign.cpp:357:3:  [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 ( insCode1,M.insCode1 );
data/ssm-1.4.0/ssm/ssm_malign.cpp:358:3:  [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 ( insCode2,M.insCode2 );
data/ssm-1.4.0/ssm/ssm_malign.cpp:406: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 ( name,res->GetResName() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:407: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 ( chID,res->GetChainID() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:410: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 ( insCode,res->GetInsCode() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:417:3:  [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 ( name,M.name );
data/ssm-1.4.0/ssm/ssm_malign.cpp:418:3:  [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 ( chID,M.chID );
data/ssm-1.4.0/ssm/ssm_malign.cpp:421:3:  [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 ( insCode,M.insCode );
data/ssm-1.4.0/ssm/ssm_malign.cpp:909:5:  [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 ( SS,S[i]->G->GetGraphName() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:930:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf ( N," %5.3g|%s%s:%2i",S[j]->P[i],
data/ssm-1.4.0/ssm/ssm_malign.cpp:932: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 ( SS,N );
data/ssm-1.4.0/ssm/ssm_malign.cpp:979:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf ( N,"     %4s       ",S[i]->G->GetGraphName() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:997:11:  [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 ( chID,MSSEOutput[i][j].chID );
data/ssm-1.4.0/ssm/ssm_malign.cpp:1003:11:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
          sprintf ( N,"%1s[%1s:%i-%i]",L,chID,
data/ssm-1.4.0/ssm/ssm_malign.cpp:1028:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf ( N,"       %s      ",S[i]->G->GetGraphName() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:1046:11:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
          sprintf ( N,"|%2i:%1s%4i%1s-%4i%1s|",vno,chID,
data/ssm-1.4.0/ssm/ssm_malign.cpp:2432:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf ( L,"    %4s    ",S[i]->G->GetGraphName() );
data/ssm-1.4.0/ssm/ssm_malign.cpp:2456:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf ( L,"%2s%1s:%3s%4i%1s",SS,MAOut[i][j].chID,
data/ssm-1.4.0/ssm/ssm_superpose.cpp:819: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 ( a[i].chID,Calpha[i]->GetChainID() );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:335:27:  [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).
    if (!initResName[0])  strcpy ( initResName,CA[0]->GetResName()      );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:336:27:  [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).
    if (!endResName[0])   strcpy ( endResName ,CA[nres-1]->GetResName() );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:365:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
  sprintf    ( S,"%i[%s]",Helix->serNum,Helix->helixID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:369:3:  [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 ( vertexID   ,Helix->helixID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:370:3:  [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 ( chainID    ,Helix->initChainID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:371:3:  [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 ( initResName,Helix->initResName );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:372:3:  [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 ( initICode  ,Helix->initICode   );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:373:3:  [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 ( endResName ,Helix->endResName  );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:374:3:  [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 ( endICode   ,Helix->endICode    );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:394:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
  sprintf    ( S,"%s[%i]",Strand->sheetID,Strand->strandNo );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:398:3:  [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 ( vertexID   ,Strand->sheetID     );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:399:3:  [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 ( chainID    ,Strand->initChainID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:400:3:  [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 ( initResName,Strand->initResName );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:401:3:  [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 ( initICode  ,Strand->initICode   );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:402:3:  [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 ( endResName ,Strand->endResName  );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:403:3:  [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 ( endICode   ,Strand->endICode    );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:435:16:  [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).
  if (chID)    strcpy ( chainID,chID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:437:16:  [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).
  if (iCode1)  strcpy ( initICode,iCode1 );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:439:16:  [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).
  if (iCode2)  strcpy ( endICode,iCode2 );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:625:21:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    case V_HELIX  : sprintf ( S,"%3i HELIX  %8s %2i %3i",
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:628:21:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    case V_STRAND : sprintf ( S,"%3i STRAND %8s    %3i",
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:646:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf ( S,"%3i|H%2s%3i|%1s|%3s%4i%1s|%3s%4i%1s|",
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:651:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf ( S,"%3i|SD%4i|%1s|%3s%4i%1s|%3s%4i%1s|",
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:667:3:  [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 ( chID,chainID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:668:3:  [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 ( name1,initResName );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:670:3:  [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 ( insCode1,initICode );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:671:3:  [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 ( name2,endResName );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:673:3:  [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 ( insCode2,endICode );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:718:3:  [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 ( vertexID   ,v->vertexID    );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:719:3:  [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 ( chainID    ,v->chainID     );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:720:3:  [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 ( initResName,v->initResName );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:721:3:  [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 ( initICode  ,v->initICode   );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:722:3:  [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 ( endResName ,v->endResName  );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:723:3:  [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 ( endICode   ,v->endICode    );
data/ssm-1.4.0/sup_multiple.cpp:77:7:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
      sprintf ( S,fmt,m[i][j] );
data/ssm-1.4.0/sup_multiple.cpp:105:7:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
      sprintf ( S,fmt,m[i][j] );
data/ssm-1.4.0/superpose.cpp:110:3:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  printf (
data/ssm-1.4.0/ssm/ssm_align.cpp:700: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 sse[2],hp[2],ch[3],S[200];
data/ssm-1.4.0/ssm/ssm_align.cpp:731:1:  [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[100],SI[10];
data/ssm-1.4.0/ssm/ssm_align.cpp:744:19:  [2] (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 string.
        case 5 :  strcpy ( SI,"*****" );  break;
data/ssm-1.4.0/ssm/ssm_align.cpp:745:19:  [2] (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 string.
        case 4 :  strcpy ( SI,"+++++" );  break;
data/ssm-1.4.0/ssm/ssm_align.cpp:746:19:  [2] (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 string.
        case 3 :  strcpy ( SI,"=====" );  break;
data/ssm-1.4.0/ssm/ssm_align.cpp:747:19:  [2] (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 string.
        case 2 :  strcpy ( SI,"-----" );  break;
data/ssm-1.4.0/ssm/ssm_align.cpp:748:19:  [2] (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 string.
        case 1 :  strcpy ( SI,":::::" );  break;
data/ssm-1.4.0/ssm/ssm_align.cpp:750:19:  [2] (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 string.
        case 0 :  strcpy ( SI,"....." );  break;
data/ssm-1.4.0/ssm/ssm_align.cpp:847:1:  [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 rn1[10];
data/ssm-1.4.0/ssm/ssm_align.cpp:848:1:  [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 rn2[10];
data/ssm-1.4.0/ssm/ssm_graph.cpp:285:1:  [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 N[100];
data/ssm-1.4.0/ssm/ssm_graph.cpp:288:29:  [2] (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 string.
    if (!V[0]->chainID[0])  strcpy ( S,"''" );
data/ssm-1.4.0/ssm/ssm_graph.cpp:292:31:  [2] (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 string.
      if (!V[i]->chainID[0])  strcpy ( N,"''" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:803:1:  [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 L[100];
data/ssm-1.4.0/ssm/ssm_malign.cpp:817:7:  [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 ( L,"S%03i",i+1 );
data/ssm-1.4.0/ssm/ssm_malign.cpp:873:1:  [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 L[10];
data/ssm-1.4.0/ssm/ssm_malign.cpp:902:1:  [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 L[10],SS[500],N[300];
data/ssm-1.4.0/ssm/ssm_malign.cpp:908: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 ( SS,"     " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:910: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 ( SS,"   "   );
data/ssm-1.4.0/ssm/ssm_malign.cpp:924: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 ( SS,"%2i.",i );
data/ssm-1.4.0/ssm/ssm_malign.cpp:935:9:  [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 ( SS,"            " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:940:9:  [2] (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 string.
        strcpy ( SS,"  " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:957:1:  [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          N[200],L[20];
data/ssm-1.4.0/ssm/ssm_malign.cpp:995:11:  [2] (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 string.
          strcpy ( N,"                " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:2421:1:  [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       L[100],SS[4];
data/ssm-1.4.0/ssm/ssm_malign.cpp:2452:14:  [2] (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 string.
             strcpy ( SS,"H|" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:2454:14:  [2] (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 string.
             strcpy ( SS,"S|" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:2455:14:  [2] (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 string.
        else strcpy ( SS,"  " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:2460:9:  [2] (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 string.
        strcpy ( L,"            " );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:357:1:  [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[200];
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:386:1:  [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[200];
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:416:1:  [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[200];
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:426: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 ( S,"%i[]",serNum );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:427: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 ( vertexID,"HX%i",serNum );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:429: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 ( S,"[%i]",serNum );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:430: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 ( vertexID,"SD%i",serNum );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:637:1:  [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  HType[5];
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:640:7:  [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 ( HType,"%i",classID );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:645:22:  [2] (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 string.
      if (HType[2])  strcpy ( HType,"**" );
data/ssm-1.4.0/sup_multiple.cpp:64:1:  [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[100];
data/ssm-1.4.0/superpose.cpp:152:1:  [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[500];
data/ssm-1.4.0/ssm/ssm_align.cpp:340:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void ssm::Align::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_align.cpp:859:15:  [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.
        else  strcpy ( rn1,"-" );
data/ssm-1.4.0/ssm/ssm_align.cpp:862:15:  [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.
        else  strcpy ( rn2,"-" );
data/ssm-1.4.0/ssm/ssm_align.cpp:871: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 ( rn1,"-" );
data/ssm-1.4.0/ssm/ssm_align.cpp:872: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 ( rn2,"-" );
data/ssm-1.4.0/ssm/ssm_align.h:101:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_csia.cpp:216:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void ssm::Match::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_csia.cpp:937:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::GraphMatch::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_csia.cpp:948:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      match[i]->read ( f );
data/ssm-1.4.0/ssm/ssm_csia.h:90:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_csia.h:139:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_graph.cpp:79:3:  [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 ( devChain," "  );
data/ssm-1.4.0/ssm/ssm_graph.cpp:202:30:  [1] (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 character.
      if (i>0)               strcat ( S,"," );
data/ssm-1.4.0/ssm/ssm_graph.cpp:290:5:  [1] (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 character.
    strcat ( S,"," );
data/ssm-1.4.0/ssm/ssm_graph.cpp:294:7:  [1] (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 character.
      strcat ( N,"," );
data/ssm-1.4.0/ssm/ssm_graph.cpp:298:30:  [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).
                     else  S[strlen(S)-1] = char(0);
data/ssm-1.4.0/ssm/ssm_graph.cpp:1099:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::Graph::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_graph.h:180:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_malign.cpp:375:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::MSSEOutput::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_malign.cpp:408:20:  [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.
    if (!chID[0])  strcpy ( chID," " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:436:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::MAOutput::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_malign.cpp:886:14:  [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 ( L,"H" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:887:14:  [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.
        else strcpy ( L,"S" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:905:3:  [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 ( SS,"" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:915:7:  [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 ( SS,"" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:928:14:  [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 ( L,"H" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:929:14:  [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.
        else strcpy ( L,"S" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:944:9:  [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).
    if (strlen(SS)>2)  writeDebug ( SS );
data/ssm-1.4.0/ssm/ssm_malign.cpp:999:30:  [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.
            case V_HELIX  :  strcpy ( L,"H" );  break;
data/ssm-1.4.0/ssm/ssm_malign.cpp:1000:30:  [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.
            case V_STRAND :  strcpy ( L,"S" );  break;
data/ssm-1.4.0/ssm/ssm_malign.cpp:1001:30:  [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.
            default       :  strcpy ( L,"X" );  break;
data/ssm-1.4.0/ssm/ssm_malign.cpp:1008: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).
                  while (strlen(N)<16)  strcat ( N,"*" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:1008:41:  [1] (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 character.
                  while (strlen(N)<16)  strcat ( N,"*" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:1009: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).
            else  while (strlen(N)<16)  strcat ( N," " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:1009:41:  [1] (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 character.
            else  while (strlen(N)<16)  strcat ( N," " );
data/ssm-1.4.0/ssm/ssm_malign.cpp:1258:3:  [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 ( chID,"A" );
data/ssm-1.4.0/ssm/ssm_malign.cpp:2569:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::MultAlign::read  ( mmdb::io::RFile )  {
data/ssm-1.4.0/ssm/ssm_malign.h:125:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    void  read        ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_malign.h:145:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_malign.h:263:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:273:3:  [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 ( vertexID   ,"" ); // helix ID or sheet ID
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:274:3:  [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 ( chainID    ,"" ); // chain ID (only for identification)
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:275:3:  [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 ( initResName,"" ); // name of the strand's initial residue
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:276:3:  [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 ( initICode  ,"" ); // insertion code of the initial residue
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:277:3:  [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 ( endResName ,"" ); // name of the strand's terminal residue
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:278:3:  [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 ( endICode   ,"" ); // insertion code of the terminal residue
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:631:21:  [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.
    default       : strcpy  ( S,"" );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:655:21:  [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.
    default       : strcpy  ( S,"" );
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:772:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::Vertex::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_vxedge.cpp:1165:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void  ssm::Edge::read ( mmdb::io::RFile f )  {
data/ssm-1.4.0/ssm/ssm_vxedge.h:129:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/ssm/ssm_vxedge.h:214:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      void  read  ( mmdb::io::RFile f );
data/ssm-1.4.0/sup_multiple.cpp:68: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).
  for (i=0;i<(int)strlen(name);i++)
data/ssm-1.4.0/sup_multiple.cpp:73:7:  [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).
  k = strlen(G[0]->GetGraphName());
data/ssm-1.4.0/sup_multiple.cpp:78: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).
      n = mmdb::IMax ( n,strlen(S) );
data/ssm-1.4.0/sup_multiple.cpp:141: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).
    nc   = mmdb::IMax ( nc,strlen(name[i])+strlen(selstring[i]) );
data/ssm-1.4.0/sup_multiple.cpp:141:44:  [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).
    nc   = mmdb::IMax ( nc,strlen(name[i])+strlen(selstring[i]) );

ANALYSIS SUMMARY:

Hits = 185
Lines analyzed = 12686 in approximately 0.32 seconds (39567 lines/second)
Physical Source Lines of Code (SLOC) = 9117
Hits@level = [0]  98 [1]  57 [2]  41 [3]   0 [4]  87 [5]   0
Hits@level+ = [0+] 283 [1+] 185 [2+] 128 [3+]  87 [4+]  87 [5+]   0
Hits/KSLOC@level+ = [0+] 31.0409 [1+] 20.2918 [2+] 14.0397 [3+] 9.54261 [4+] 9.54261 [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.