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/hinge-0.5.0/src/consensus/consensus.cpp
Examining data/hinge-0.5.0/src/consensus/draft_chopper.cpp
Examining data/hinge-0.5.0/src/consensus/io_base.cpp
Examining data/hinge-0.5.0/src/consensus/draft.cpp
Examining data/hinge-0.5.0/src/filter/filter.cpp
Examining data/hinge-0.5.0/src/include/DB.h
Examining data/hinge-0.5.0/src/include/INIReader.h
Examining data/hinge-0.5.0/src/include/LAInterface.h
Examining data/hinge-0.5.0/src/include/QV.h
Examining data/hinge-0.5.0/src/include/align.h
Examining data/hinge-0.5.0/src/include/cmdline.h
Examining data/hinge-0.5.0/src/include/common.h
Examining data/hinge-0.5.0/src/include/ini.h
Examining data/hinge-0.5.0/src/include/kseq.h
Examining data/hinge-0.5.0/src/include/paf.h
Examining data/hinge-0.5.0/src/layout/hinging.cpp
Examining data/hinge-0.5.0/src/lib/DB.c
Examining data/hinge-0.5.0/src/lib/DW_banded.c
Examining data/hinge-0.5.0/src/lib/INIReader.cpp
Examining data/hinge-0.5.0/src/lib/LAInterface.cpp
Examining data/hinge-0.5.0/src/lib/QV.c
Examining data/hinge-0.5.0/src/lib/align.c
Examining data/hinge-0.5.0/src/lib/falcon.c
Examining data/hinge-0.5.0/src/lib/ini.c
Examining data/hinge-0.5.0/src/lib/kmer_lookup.c
Examining data/hinge-0.5.0/src/lib/paf.c
Examining data/hinge-0.5.0/src/maximal/maximal.cpp
Examining data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp
Examining data/hinge-0.5.0/src/test/LAInterface_test.cpp
Examining data/hinge-0.5.0/src/test/LAInterface_test1.cpp
Examining data/hinge-0.5.0/src/test/LAInterface_test_2DB.cpp
Examining data/hinge-0.5.0/src/test/omp_test.c

FINAL RESULTS:

data/hinge-0.5.0/src/consensus/draft.cpp:618:17:  [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(aseq, breads[std::get<0>(ladders[i][mx])].substr(std::get<1>(ladders[i][mx]),
data/hinge-0.5.0/src/consensus/draft.cpp:621:17:  [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(bseq, breads[std::get<0>(ladders[i][j])].substr(std::get<1>(ladders[i][j]),
data/hinge-0.5.0/src/consensus/draft.cpp:642:17:  [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(q_aln_str + 1, alng->q_aln_str);
data/hinge-0.5.0/src/consensus/draft.cpp:643:17:  [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(t_aln_str + 1, alng->t_aln_str);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:210:72:  [4] (misc) getlogin:
  It's often easy to fool getlogin. Sometimes it does not work at all,
  because some program messed up the utmp file. Often, it gives only the
  first 8 characters of the login name. The user currently logged in on the
  controlling tty of our program need not be the user who started it. Avoid
  getlogin() for security-related purposes (CWE-807). Use getpwuid(geteuid())
  and extract the desired information instead.
        console->info("current user {}, current working directory {}", getlogin(), buff);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:902:21:  [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(aseq, breads[std::get<0>(ladders[i][mx])].substr(std::get<1>(ladders[i][mx]),
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:905:21:  [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(bseq, breads[std::get<0>(ladders[i][j])].substr(std::get<1>(ladders[i][j]),
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:926:21:  [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(q_aln_str + 1, alng->q_aln_str);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:927:21:  [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(t_aln_str + 1, alng->t_aln_str);
data/hinge-0.5.0/src/consensus/io_base.cpp:151:68:  [4] (misc) getlogin:
  It's often easy to fool getlogin. Sometimes it does not work at all,
  because some program messed up the utmp file. Often, it gives only the
  first 8 characters of the login name. The user currently logged in on the
  controlling tty of our program need not be the user who started it. Avoid
  getlogin() for security-related purposes (CWE-807). Use getpwuid(geteuid())
  and extract the desired information instead.
    console->info("current user {}, current working directory {}", getlogin(), buff);
data/hinge-0.5.0/src/include/DB.h:78:17:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
#define EPRINTF sprintf
data/hinge-0.5.0/src/include/DB.h:84:17:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define EPRINTF fprintf
data/hinge-0.5.0/src/lib/DB.c:193:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
  sprintf(cat,"%s%s%s%s",path,sep,root,suffix);
data/hinge-0.5.0/src/lib/DB.c:213:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
  sprintf(suffix,"%s%d%s",left,num,right);
data/hinge-0.5.0/src/lib/DB.c:452:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
    if (fscanf(dbvis,DB_NFILE,&nfiles) != 1)
data/hinge-0.5.0/src/lib/DB.c:457:11:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
      if (fscanf(dbvis,DB_FDATA,&tlast,fname,prolog) != 3)
data/hinge-0.5.0/src/lib/DB.c:461:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
    if (fscanf(dbvis,DB_NBLOCK,&nblocks) != 1)
data/hinge-0.5.0/src/lib/DB.c:472:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
      { if (fscanf(dbvis,DB_PARAMS,&size,&cutoff,&all) != 3)
data/hinge-0.5.0/src/lib/DB.c:484:15:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
          if (fscanf(dbvis,DB_BDATA,&ufirst,&tfirst) != 2)
data/hinge-0.5.0/src/lib/DB.c:488:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
        if (fscanf(dbvis,DB_BDATA,&ulast,&tlast) != 2)
data/hinge-0.5.0/src/lib/DB.c:866:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
    if (fscanf(istub,DB_NFILE,&nfiles) != 1)
data/hinge-0.5.0/src/lib/DB.c:884:17:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
          { if (fscanf(istub,DB_FDATA,&last,fname,prolog) != 3)
data/hinge-0.5.0/src/lib/DB.c:895:17:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
            if (fscanf(istub,DB_FDATA,&last,fname,prolog) != 3)
data/hinge-0.5.0/src/lib/DB.c:916:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
        fscanf(istub,DB_NFILE,&nfiles);
data/hinge-0.5.0/src/lib/DB.c:920:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
          { fscanf(istub,DB_FDATA,&last,fname,prolog);
data/hinge-0.5.0/src/lib/DB.c:925:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
          { fscanf(istub,DB_FDATA,&last,fname,prolog);
data/hinge-0.5.0/src/lib/DB.c:984:17:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
          { if (fscanf(istub,DB_FDATA,&last,fname,prolog) != 3)
data/hinge-0.5.0/src/lib/LAInterface.cpp:33: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(fn, filename.c_str());
data/hinge-0.5.0/src/lib/LAInterface.cpp:36: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(fn2, filename2.c_str());
data/hinge-0.5.0/src/lib/LAInterface.cpp:61: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(fn_1, fn);
data/hinge-0.5.0/src/lib/LAInterface.cpp:68:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
    if (fscanf(dstub, DB_NFILE, &nfiles) != 1) SYSTEM_ERROR
data/hinge-0.5.0/src/lib/LAInterface.cpp:84:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
        if (fscanf(dstub, DB_FDATA, findx + i, fname, prolog) != 3) SYSTEM_ERROR
data/hinge-0.5.0/src/lib/LAInterface.cpp:94: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(fn_2, fn2);
data/hinge-0.5.0/src/lib/LAInterface.cpp:101:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
    if (fscanf(dstub, DB_NFILE, &nfiles2) != 1) SYSTEM_ERROR
data/hinge-0.5.0/src/lib/LAInterface.cpp:117:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
        if (fscanf(dstub, DB_FDATA, findx2 + i, fname, prolog) != 3) SYSTEM_ERROR
data/hinge-0.5.0/src/lib/LAInterface.cpp:135: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(fn, filename.c_str());
data/hinge-0.5.0/src/lib/LAInterface.cpp:151: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(fn2, fn);
data/hinge-0.5.0/src/lib/LAInterface.cpp:158:9:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
    if (fscanf(dstub, DB_NFILE, &nfiles) != 1) SYSTEM_ERROR
data/hinge-0.5.0/src/lib/LAInterface.cpp:174:13:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function. If the scanf format is influenceable by an
  attacker, it's exploitable.
        if (fscanf(dstub, DB_FDATA, findx + i, fname, prolog) != 3) SYSTEM_ERROR
data/hinge-0.5.0/src/lib/LAInterface.cpp:598: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(fn, filename.c_str());
data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp:88: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(seq, base_structure.c_str());
data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp:111: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(q_aln_str, alignment.second.c_str());
data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp:112: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(t_aln_str, alignment.first.c_str());
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:209:9:  [3] (buffer) getwd:
  This does not protect against buffer overflows by itself, so use with
  caution (CWE-120, CWE-20). Use getcwd instead.
        getwd(buff);
data/hinge-0.5.0/src/consensus/io_base.cpp:150:5:  [3] (buffer) getwd:
  This does not protect against buffer overflows by itself, so use with
  caution (CWE-120, CWE-20). Use getcwd instead.
    getwd(buff);
data/hinge-0.5.0/src/filter/filter.cpp:620:9:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
        srand(time(NULL));
data/hinge-0.5.0/src/maximal/maximal.cpp:691:9:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
        srand(time(NULL));
data/hinge-0.5.0/src/consensus/consensus.cpp:27: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 ToU[4] = { 'A', 'C', 'G', 'T' };
data/hinge-0.5.0/src/consensus/draft.cpp:853:23:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
        read_number = atoi(read_line.c_str());
data/hinge-0.5.0/src/filter/filter.cpp:319:26:  [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).
        restrict_reads = fopen(name_restrict, "r");
data/hinge-0.5.0/src/include/kseq.h:135: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(str->s + str->l, ks->buf + ks->begin, i - ks->begin);  \
data/hinge-0.5.0/src/layout/hinging.cpp:404:23:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
        read_number = atoi(read_line.c_str());
data/hinge-0.5.0/src/layout/hinging.cpp:870:17:  [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).
    mask_file = fopen(name_mask.c_str(), "r");
data/hinge-0.5.0/src/layout/hinging.cpp:880:19:  [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).
    repeat_file = fopen(name_rep.c_str(), "r");
data/hinge-0.5.0/src/layout/hinging.cpp:882:18:  [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).
    hinge_file = fopen(name_hg.c_str(), "r");
data/hinge-0.5.0/src/layout/hinging.cpp:1077:13:  [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).
    G_out = fopen("edges.g_out.txt", "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1119:18:  [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).
    out_backup = fopen("edges.fwd.backup.txt", "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1136:18:  [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).
    out_backup = fopen("edges.bkw.backup.txt", "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1162:14:  [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).
    out_g1 = fopen((std::string(out_name) + ".edges.1").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1163:14:  [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).
    out_g2 = fopen((std::string(out_name) + ".edges.2").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1166:14:  [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).
    out_hg = fopen((std::string(out_name) + ".edges.hinges").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1167:15:  [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).
    out_hg2 = fopen((std::string(out_name) + ".edges.hinges2").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1168:18:  [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).
    out_greedy = fopen((std::string(out_name) + ".edges.greedy").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1169:19:  [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).
    out_skipped = fopen((std::string(out_name) + ".edges.skipped").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1357:18:  [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).
    out_hgraph = fopen((std::string(out_name) + ".hgraph").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1360:17:  [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).
    out_debug = fopen((std::string(out_name) + ".debug").c_str(), "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1363:24:  [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).
    OverlapDebugFile = fopen("overlap_debug.txt", "w");
data/hinge-0.5.0/src/layout/hinging.cpp:1697:18:  [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).
    out_hglist = fopen((std::string(out_name) + ".hinge.list").c_str(), "w");
data/hinge-0.5.0/src/lib/DB.c:77: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 Ebuffer[1000];
data/hinge-0.5.0/src/lib/DB.c:122:12:  [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).
  if ((f = fopen(name,mode)) == NULL)
data/hinge-0.5.0/src/lib/DB.c:303: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.
    *s++ = (char ) ((s0[i] << 6) | (s1[i] << 4) | (s2[i] << 2) | s3[i]);
data/hinge-0.5.0/src/lib/DB.c:337:10:  [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 letter[4] = { 'a', 'c', 'g', 't' };
data/hinge-0.5.0/src/lib/DB.c:345:10:  [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 letter[4] = { 'A', 'C', 'G', 'T' };
data/hinge-0.5.0/src/lib/DB.c:355:10:  [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 number[128] =
data/hinge-0.5.0/src/lib/DB.c:429:16:  [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).
  if ((dbvis = fopen(cat,"r")) == NULL)
data/hinge-0.5.0/src/lib/DB.c:433:20:  [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).
      if ((dbvis = fopen(cat,"r")) == NULL)
data/hinge-0.5.0/src/lib/DB.c:449: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  fname[MAX_NAME], prolog[MAX_NAME];
data/hinge-0.5.0/src/lib/DB.c:863: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  prolog[MAX_NAME], fname[MAX_NAME];
data/hinge-0.5.0/src/lib/DB.c:1087:16:  [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).
    { afile  = fopen(Catenate(db->path,Numbered_Suffix(".",db->part,"."),track,".anno"),"r");
data/hinge-0.5.0/src/lib/DB.c:1091:16:  [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).
    { afile  = fopen(Catenate(db->path,".",track,".anno"),"r");
data/hinge-0.5.0/src/lib/DB.c:1154:16:  [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).
    { afile  = fopen(Catenate(db->path,Numbered_Suffix(".",db->part,"."),track,".anno"),"r");
data/hinge-0.5.0/src/lib/DB.c:1158:15:  [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).
    { afile = fopen(Catenate(db->path,".",track,".anno"),"r");
data/hinge-0.5.0/src/lib/DB.c:1177:11:  [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).
  dfile = fopen(name,"r");
data/hinge-0.5.0/src/lib/LAInterface.cpp:62: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(fn_1, ".db");
data/hinge-0.5.0/src/lib/LAInterface.cpp:82: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 prolog[MAX_NAME], fname[MAX_NAME];
data/hinge-0.5.0/src/lib/LAInterface.cpp:95: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(fn_2, ".db");
data/hinge-0.5.0/src/lib/LAInterface.cpp:115: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 prolog[MAX_NAME], fname[MAX_NAME];
data/hinge-0.5.0/src/lib/LAInterface.cpp:152: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(fn2, ".db");
data/hinge-0.5.0/src/lib/LAInterface.cpp:172: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 prolog[MAX_NAME], fname[MAX_NAME];
data/hinge-0.5.0/src/lib/LAInterface.cpp:1492:10:  [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(new_ovl->trace_pts, ovl->path.trace, ovl->path.tlen * sizeof(uint16));
data/hinge-0.5.0/src/lib/LAInterface.cpp:1610: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(new_ovl->trace_pts, ovl->path.trace, ovl->path.tlen * sizeof(uint16));
data/hinge-0.5.0/src/lib/LAInterface.cpp:2003: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(new_al->trace_pts, ovl->path.trace, ovl->path.tlen * sizeof(uint16));
data/hinge-0.5.0/src/lib/LAInterface.cpp:2405: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(new_al->trace_pts, ovl->path.trace, ovl->path.tlen * sizeof(uint16));
data/hinge-0.5.0/src/lib/LAInterface.cpp:2881: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 ToL[8] = { 'a', 'c', 'g', 't', '.', '[', ']', '-' };
data/hinge-0.5.0/src/lib/LAInterface.cpp:2882: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 ToU[8] = { 'A', 'C', 'G', 'T', '.', '[', ']', '-' };
data/hinge-0.5.0/src/lib/LAInterface.cpp:4182: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(path->trace, alignment->trace_pts, path->tlen * sizeof(uint16));
data/hinge-0.5.0/src/lib/LAInterface.cpp:4815: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 substr[15];
data/hinge-0.5.0/src/lib/LAInterface.cpp:4818:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
    return atoi(substr);
data/hinge-0.5.0/src/lib/align.c:3246: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 ToL[8] = { 'a', 'c', 'g', 't', '.', '[', ']', '-' };
data/hinge-0.5.0/src/lib/align.c:3247: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 ToU[8] = { 'A', 'C', 'G', 'T', '.', '[', ']', '-' };
data/hinge-0.5.0/src/lib/ini.c:71: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 line[INI_MAX_LINE];
data/hinge-0.5.0/src/lib/ini.c:75: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 section[MAX_SECTION] = "";
data/hinge-0.5.0/src/lib/ini.c:76: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 prev_name[MAX_NAME] = "";
data/hinge-0.5.0/src/lib/ini.c:181:12:  [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).
    file = fopen(filename, "r");
data/hinge-0.5.0/src/maximal/maximal.cpp:385:26:  [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).
        restrict_reads = fopen(name_restrict, "r");
data/hinge-0.5.0/src/maximal/maximal.cpp:525:17:  [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).
    mask_file = fopen(name_mask.c_str(), "r");
data/hinge-0.5.0/src/consensus/draft.cpp:581:35:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    if (coverages[read]->at(pos) < mincoverage) mincoverage = coverages[read]->at(pos);
data/hinge-0.5.0/src/consensus/draft.cpp:581:89:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    if (coverages[read]->at(pos) < mincoverage) mincoverage = coverages[read]->at(pos);
data/hinge-0.5.0/src/consensus/draft.cpp:628: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).
                arange->e1 = strlen(bseq);
data/hinge-0.5.0/src/consensus/draft.cpp:630: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).
                arange->e2 = strlen(aseq);
data/hinge-0.5.0/src/consensus/draft.cpp:638:56:  [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 *q_aln_str = (char *) malloc((5 + strlen(alng->q_aln_str)) * sizeof(char));
data/hinge-0.5.0/src/consensus/draft.cpp:639:56:  [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 *t_aln_str = (char *) malloc((5 + strlen(alng->t_aln_str)) * sizeof(char));
data/hinge-0.5.0/src/consensus/draft.cpp:648: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).
                for (int pos = 0; pos < strlen(q_aln_str); pos++) q_aln_str[pos] = toupper(q_aln_str[pos]);
data/hinge-0.5.0/src/consensus/draft.cpp:649: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).
                for (int pos = 0; pos < strlen(t_aln_str); pos++) t_aln_str[pos] = toupper(t_aln_str[pos]);
data/hinge-0.5.0/src/consensus/draft.cpp:655:47:  [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(alng->q_aln_str) + 1,
data/hinge-0.5.0/src/consensus/draft.cpp:801: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/draft.cpp:828: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(name_db) > 0) {
data/hinge-0.5.0/src/consensus/draft.cpp:834: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(name_fasta) > 0) {
data/hinge-0.5.0/src/consensus/draft.cpp:840: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(name_db) > 0) {
data/hinge-0.5.0/src/consensus/draft.cpp:922: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(name_paf) > 0) {
data/hinge-0.5.0/src/consensus/draft.cpp:1159: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:226: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:230: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(name_las) > 0)
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:235: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(name_las) > 0) {
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:242: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:247: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(name_fasta) > 0) {
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:255: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(name_las) > 0) {
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:260: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(name_paf) > 0) {
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:272: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(name_db) > 0) {
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:865:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (coverages[read]->at(pos) < mincoverage) mincoverage = coverages[read]->at(pos);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:865:93:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (coverages[read]->at(pos) < mincoverage) mincoverage = coverages[read]->at(pos);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:912:34:  [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).
                    arange->e1 = strlen(bseq);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:914:34:  [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).
                    arange->e2 = strlen(aseq);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:922:60:  [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 *q_aln_str = (char *) malloc((5 + strlen(alng->q_aln_str)) * sizeof(char));
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:923:60:  [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 *t_aln_str = (char *) malloc((5 + strlen(alng->t_aln_str)) * sizeof(char));
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:932: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).
                    for (int pos = 0; pos < strlen(q_aln_str); pos++) q_aln_str[pos] = toupper(q_aln_str[pos]);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:933: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).
                    for (int pos = 0; pos < strlen(t_aln_str); pos++) t_aln_str[pos] = toupper(t_aln_str[pos]);
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:939:51:  [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(alng->q_aln_str) + 1,
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:962:46:  [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).
                printf("Consensus len :%d\n",strlen(consensus->sequence));
data/hinge-0.5.0/src/consensus/draft_chopper.cpp:1002: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/io_base.cpp:165: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/io_base.cpp:169: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(name_las) > 0)
data/hinge-0.5.0/src/consensus/io_base.cpp:174: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(name_las) > 0) {
data/hinge-0.5.0/src/consensus/io_base.cpp:181: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(name_db) > 0)
data/hinge-0.5.0/src/consensus/io_base.cpp:186: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(name_fasta) > 0) {
data/hinge-0.5.0/src/consensus/io_base.cpp:194: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(name_las) > 0) {
data/hinge-0.5.0/src/consensus/io_base.cpp:199: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(name_paf) > 0) {
data/hinge-0.5.0/src/consensus/io_base.cpp:211: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(name_db) > 0) {
data/hinge-0.5.0/src/consensus/io_base.cpp:272: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(name_db) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:213: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).
    db_and_las = (strlen(name_db) > 0) and (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:213: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).
    db_and_las = (strlen(name_db) > 0) and (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:214: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).
    db_or_las = (strlen(name_db) > 0) or (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:214: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).
    db_or_las = (strlen(name_db) > 0) or (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:215: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).
    fa_and_paf = (strlen(name_fasta) > 0) and (strlen(name_paf) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:215:48:  [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).
    fa_and_paf = (strlen(name_fasta) > 0) and (strlen(name_paf) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:216: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).
    fa_or_paf = (strlen(name_fasta) > 0) or (strlen(name_paf) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:216:46:  [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).
    fa_or_paf = (strlen(name_fasta) > 0) or (strlen(name_paf) > 0);
data/hinge-0.5.0/src/filter/filter.cpp:236:14:  [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 if (strlen(name_las_base) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:266: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(name_db) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:284: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(name_db) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:289: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(name_fasta) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:302: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(name_db) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:317: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(name_restrict) > 0){
data/hinge-0.5.0/src/filter/filter.cpp:337: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(name_las_list[0].c_str()) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:465: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(name_las) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:467: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).
    else if(strlen(name_paf) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:479: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).
        if (strlen(name_las) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:481: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).
            if (strlen(name_las_list[part].c_str()) > 0)
data/hinge-0.5.0/src/filter/filter.cpp:487: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).
        if (strlen(name_las) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:494: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).
        if (strlen(name_las) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:499: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).
        if (strlen(name_paf) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:1103: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).
        if (strlen(name_las) > 0) {
data/hinge-0.5.0/src/filter/filter.cpp:1116: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(name_db)>0)
data/hinge-0.5.0/src/include/DB.h:398:42:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int  Load_Read(HITS_DB *db, int i, char *read, int ascii);
data/hinge-0.5.0/src/include/DB.h:407:64:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
char *Load_Subread(HITS_DB *db, int i, int beg, int end, char *read, int ascii);
data/hinge-0.5.0/src/include/cmdline.h:721:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        actual=read(value);
data/hinge-0.5.0/src/include/cmdline.h:767:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual T read(const std::string &s)=0;
data/hinge-0.5.0/src/include/cmdline.h:792:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    T read(const std::string &s){
data/hinge-0.5.0/src/layout/hinging.cpp:363: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(name_paf) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:366: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(name_las_base) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:384:22:  [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 (mult_las and strlen(name_las_base) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:388:14:  [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 if (strlen(name_las_base) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:415: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(name_las) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:417: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).
    else if(strlen(name_paf) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:425: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).
        if (strlen(name_las_base) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:428: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).
            if (strlen(name_las_list[part].c_str()) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:437: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).
        if (strlen(name_las_base) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:438: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).
            if (strlen(name_las_list[part].c_str()) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:443: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).
            if (strlen(name_las_list[part].c_str()) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:449: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).
        if (strlen(name_paf) > 0){
data/hinge-0.5.0/src/layout/hinging.cpp:504: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).
                if (strlen(name_las_base) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:542: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).
                    if (strlen(name_db) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:572: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).
                    if (strlen(name_db) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:699: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).
    db_and_las = (strlen(name_db) > 0) and (strlen(name_las) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:699: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).
    db_and_las = (strlen(name_db) > 0) and (strlen(name_las) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:700: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).
    db_or_las = (strlen(name_db) > 0) or (strlen(name_las) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:700: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).
    db_or_las = (strlen(name_db) > 0) or (strlen(name_las) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:701: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).
    fa_and_paf = (strlen(name_fasta) > 0) and (strlen(name_paf) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:701:48:  [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).
    fa_and_paf = (strlen(name_fasta) > 0) and (strlen(name_paf) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:702: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).
    fa_or_paf = (strlen(name_fasta) > 0) or (strlen(name_paf) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:702:46:  [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).
    fa_or_paf = (strlen(name_fasta) > 0) or (strlen(name_paf) > 0);
data/hinge-0.5.0/src/layout/hinging.cpp:728: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(name_db) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:738: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(name_db) > 0)
data/hinge-0.5.0/src/layout/hinging.cpp:743: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(name_fasta) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:762: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(name_db) > 0) {
data/hinge-0.5.0/src/layout/hinging.cpp:871:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read, rs, re;
data/hinge-0.5.0/src/layout/hinging.cpp:873:43:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    while (fscanf(mask_file, "%d %d %d", &read, &rs, &re) != EOF) {
data/hinge-0.5.0/src/layout/hinging.cpp:874:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        reads[read]->effective_start = rs;
data/hinge-0.5.0/src/layout/hinging.cpp:875:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        reads[read]->effective_end = re;
data/hinge-0.5.0/src/layout/hinging.cpp:2155: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(name_db) > 0)
data/hinge-0.5.0/src/lib/DB.c:162: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).
    { epos  = strlen(find);
data/hinge-0.5.0/src/lib/DB.c:163: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).
      epos -= strlen(suffix);
data/hinge-0.5.0/src/lib/DB.c:182:10:  [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).
  len =  strlen(path);
data/hinge-0.5.0/src/lib/DB.c:183:10:  [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).
  len += strlen(sep);
data/hinge-0.5.0/src/lib/DB.c:184:10:  [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).
  len += strlen(root);
data/hinge-0.5.0/src/lib/DB.c:185:10:  [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).
  len += strlen(suffix);
data/hinge-0.5.0/src/lib/DB.c:204:10:  [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).
  len =  strlen(left);
data/hinge-0.5.0/src/lib/DB.c:205:10:  [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).
  len += strlen(right) + 40;
data/hinge-0.5.0/src/lib/DB.c:407:10:  [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).
  plen = strlen(path);
data/hinge-0.5.0/src/lib/DB.c:693:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  HITS_READ   read;
data/hinge-0.5.0/src/lib/DB.c:730:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          { if (fread(&read,sizeof(HITS_READ),1,indx) != 1)
data/hinge-0.5.0/src/lib/DB.c:735:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if ((read.flags & DB_BEST) >= allflag && read.rlen >= cutoff)
data/hinge-0.5.0/src/lib/DB.c:735:54:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if ((read.flags & DB_BEST) >= allflag && read.rlen >= cutoff)
data/hinge-0.5.0/src/lib/DB.c:749:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          { if (fread(&read,sizeof(HITS_READ),1,indx) != 1)
data/hinge-0.5.0/src/lib/DB.c:754:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if ((read.flags & DB_BEST) >= allflag && read.rlen >= cutoff)
data/hinge-0.5.0/src/lib/DB.c:754:54:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if ((read.flags & DB_BEST) >= allflag && read.rlen >= cutoff)
data/hinge-0.5.0/src/lib/DB.c:769:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          { if (fread(&read,sizeof(HITS_READ),1,indx) != 1)
data/hinge-0.5.0/src/lib/DB.c:774:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if ((read.flags & DB_BEST) >= allflag && read.rlen >= cutoff)
data/hinge-0.5.0/src/lib/DB.c:774:54:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if ((read.flags & DB_BEST) >= allflag && read.rlen >= cutoff)
data/hinge-0.5.0/src/lib/DB.c:929:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
              { HITS_READ read;
data/hinge-0.5.0/src/lib/DB.c:932:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                if (fread(&read,sizeof(HITS_READ),1,indx) != 1)
data/hinge-0.5.0/src/lib/DB.c:937:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                fseeko(quiva,read.coff,SEEK_SET);
data/hinge-0.5.0/src/lib/DB.c:1357:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
{ char *read;
data/hinge-0.5.0/src/lib/DB.c:1371:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int Load_Read(HITS_DB *db, int i, char *read, int ascii)
data/hinge-0.5.0/src/lib/DB.c:1395:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { if (fread(read,clen,1,bases) != 1)
data/hinge-0.5.0/src/lib/DB.c:1400:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  Uncompress_Read(len,read);
data/hinge-0.5.0/src/lib/DB.c:1402:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { Lower_Read(read);
data/hinge-0.5.0/src/lib/DB.c:1403:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      read[-1] = '\0';
data/hinge-0.5.0/src/lib/DB.c:1406:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { Upper_Read(read);
data/hinge-0.5.0/src/lib/DB.c:1407:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      read[-1] = '\0';
data/hinge-0.5.0/src/lib/DB.c:1410:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    read[-1] = 4;
data/hinge-0.5.0/src/lib/DB.c:1414:64:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
char *Load_Subread(HITS_DB *db, int i, int beg, int end, char *read, int ascii)
data/hinge-0.5.0/src/lib/DB.c:1442:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { if (fread(read,clen,1,bases) != 1)
data/hinge-0.5.0/src/lib/DB.c:1447:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  Uncompress_Read(4*clen,read);
data/hinge-0.5.0/src/lib/DB.c:1449:3:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  read[len] = 4;
data/hinge-0.5.0/src/lib/DB.c:1451:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { Lower_Read(read);
data/hinge-0.5.0/src/lib/DB.c:1452:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      read[-1] = '\0';
data/hinge-0.5.0/src/lib/DB.c:1455:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { Upper_Read(read);
data/hinge-0.5.0/src/lib/DB.c:1456:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      read[-1] = '\0';
data/hinge-0.5.0/src/lib/DB.c:1459:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    read[-1] = 4;
data/hinge-0.5.0/src/lib/DB.c:1461:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  return (read);
data/hinge-0.5.0/src/lib/DB.c:1617:12:  [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).
  plen   = strlen(path);
data/hinge-0.5.0/src/lib/DB.c:1622:10:  [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).
  rlen = strlen(root);
data/hinge-0.5.0/src/lib/DB.c:1646:11:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
        { strncpy(root,name,rlen);
data/hinge-0.5.0/src/lib/DB.c:1650:11:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
        { strncpy(root,name,rlen);
data/hinge-0.5.0/src/lib/DB.c:1670:14:  [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).
      dlen = strlen(name);
data/hinge-0.5.0/src/lib/LAInterface.cpp:204:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    char *read, **entry;
data/hinge-0.5.0/src/lib/LAInterface.cpp:257:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Load_Read(db1, i, read, UPPER);
data/hinge-0.5.0/src/lib/LAInterface.cpp:275:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (iscase(read[m]))
data/hinge-0.5.0/src/lib/LAInterface.cpp:276:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:276:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:307:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    char *read, **entry;
data/hinge-0.5.0/src/lib/LAInterface.cpp:360:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Load_Read(db2, i, read, UPPER);
data/hinge-0.5.0/src/lib/LAInterface.cpp:378:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (iscase(read[m]))
data/hinge-0.5.0/src/lib/LAInterface.cpp:379:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:379:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:415:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    char *read, **entry;
data/hinge-0.5.0/src/lib/LAInterface.cpp:462:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Load_Read(db1, i, read, UPPER);
data/hinge-0.5.0/src/lib/LAInterface.cpp:480:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (iscase(read[m]))
data/hinge-0.5.0/src/lib/LAInterface.cpp:481:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:481:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:490:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read_bases = std::string(read);
data/hinge-0.5.0/src/lib/LAInterface.cpp:509:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    char *read, **entry;
data/hinge-0.5.0/src/lib/LAInterface.cpp:556:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Load_Read(db2, i, read, UPPER);
data/hinge-0.5.0/src/lib/LAInterface.cpp:574:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (iscase(read[m]))
data/hinge-0.5.0/src/lib/LAInterface.cpp:575:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:575:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:584:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read_bases = std::string(read);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1204:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    char *read, **entry;
data/hinge-0.5.0/src/lib/LAInterface.cpp:1250:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Load_Read(db1, i, read, UPPER);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1268:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (iscase(read[m]))
data/hinge-0.5.0/src/lib/LAInterface.cpp:1269:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1269:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1278:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read_bases = std::string(read);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1298:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    char *read, **entry;
data/hinge-0.5.0/src/lib/LAInterface.cpp:1344:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        Load_Read(db2, i, read, UPPER);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1362:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        if (iscase(read[m]))
data/hinge-0.5.0/src/lib/LAInterface.cpp:1363:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1363:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                            read[m] = (char) (read[m] + hilight);
data/hinge-0.5.0/src/lib/LAInterface.cpp:1372:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read_bases = std::string(read);
data/hinge-0.5.0/src/lib/LAInterface.cpp:4816:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy(substr, sub1, strlen(sub1) - strlen(sub2));
data/hinge-0.5.0/src/lib/LAInterface.cpp:4816: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).
    strncpy(substr, sub1, strlen(sub1) - strlen(sub2));
data/hinge-0.5.0/src/lib/LAInterface.cpp:4816: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).
    strncpy(substr, sub1, strlen(sub1) - strlen(sub2));
data/hinge-0.5.0/src/lib/LAInterface.cpp:4817:12:  [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).
    substr[strlen(sub1) - strlen(sub2)] = 0;
data/hinge-0.5.0/src/lib/LAInterface.cpp:4817: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).
    substr[strlen(sub1) - strlen(sub2)] = 0;
data/hinge-0.5.0/src/lib/LAInterface.cpp:4862: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).
        Read *new_r = new Read(num, strlen(seq->seq.s), std::string(seq->name.s), std::string(seq->seq.s));
data/hinge-0.5.0/src/lib/QV.c:423:55:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
static void Encode(HScheme *scheme, FILE *out, uint8 *read, int rlen)
data/hinge-0.5.0/src/lib/QV.c:465:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    { x = read[k];
data/hinge-0.5.0/src/lib/QV.c:485:72:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
static void Encode_Run(HScheme *neme, HScheme *reme, FILE *out, uint8 *read, int rlen, int rchar)
data/hinge-0.5.0/src/lib/QV.c:514:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      while (k < rlen && read[k] == rchar)
data/hinge-0.5.0/src/lib/QV.c:526:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        { x = read[k];
data/hinge-0.5.0/src/lib/QV.c:547:52:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
static int Decode(HScheme *scheme, FILE *in, char *read, int rlen)
data/hinge-0.5.0/src/lib/QV.c:620:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read[j] = (char) c;
data/hinge-0.5.0/src/lib/QV.c:632:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        read[j] = (char) c;
data/hinge-0.5.0/src/lib/QV.c:641:69:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
static int Decode_Run(HScheme *neme, HScheme *reme, FILE *in, char *read,
data/hinge-0.5.0/src/lib/QV.c:687:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          read[j++] = (char) rchar;
data/hinge-0.5.0/src/lib/QV.c:698:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            read[j] = (char) c;
data/hinge-0.5.0/src/lib/QV.c:712:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          read[j++] = (char) rchar;
data/hinge-0.5.0/src/lib/QV.c:723:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            read[j] = (char) c;
data/hinge-0.5.0/src/lib/QV.c:801:10:  [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).
  rlen = strlen(Read);
data/hinge-0.5.0/src/lib/QV.c:813: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).
      rlen += strlen(Read+rlen);
data/hinge-0.5.0/src/lib/QV.c:823: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).
      if (rlen != (int) strlen(other))
data/hinge-0.5.0/src/lib/QV.c:1158:11:  [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).
    len = strlen(coding->prefix);
data/hinge-0.5.0/src/lib/falcon.c:555: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).
    sa_ptr = allocate_seq( (seq_coor_t) strlen( input_seq[0]) );
data/hinge-0.5.0/src/lib/falcon.c:556:47:  [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).
    sda_ptr = allocate_seq_addr( (seq_coor_t) strlen( input_seq[0]) );
data/hinge-0.5.0/src/lib/falcon.c:557:39:  [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).
    add_sequence( 0, K, input_seq[0], strlen(input_seq[0]), sda_ptr, sa_ptr, lk_ptr);
data/hinge-0.5.0/src/lib/falcon.c:565: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).
        kmer_match_ptr = find_kmer_pos_for_seq(input_seq[j], strlen(input_seq[j]), K, sda_ptr, lk_ptr);
data/hinge-0.5.0/src/lib/falcon.c:614:76:  [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).
        consensus = get_cns_from_align_tags( tags_list, aligned_seq_count, strlen(input_seq[0]), min_cov );
data/hinge-0.5.0/src/lib/falcon.c:661:16:  [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).
    utg_len =  strlen(input_seq[0]);
data/hinge-0.5.0/src/lib/falcon.c:666: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).
    arange->e1 = strlen(input_seq[0]);
data/hinge-0.5.0/src/lib/falcon.c:668: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).
    arange->e2 = strlen(input_seq[0]);
data/hinge-0.5.0/src/lib/falcon.c:670:52:  [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(input_seq[0]), arange, 0, 0);
data/hinge-0.5.0/src/lib/falcon.c:674:22:  [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).
        arange->e1 = strlen(input_seq[j])-1;
data/hinge-0.5.0/src/lib/falcon.c:676:22:  [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).
        arange->e2 = strlen(input_seq[j])-1;
data/hinge-0.5.0/src/lib/falcon.c:678: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).
        r_len = strlen(input_seq[j]);
data/hinge-0.5.0/src/lib/ini.c:30: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).
    char* p = s + strlen(s);
data/hinge-0.5.0/src/lib/ini.c:60:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy(dest, src, size);
data/hinge-0.5.0/src/maximal/maximal.cpp:281: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).
    db_and_las = (strlen(name_db) > 0) and (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:281: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).
    db_and_las = (strlen(name_db) > 0) and (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:282: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).
    db_or_las = (strlen(name_db) > 0) or (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:282: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).
    db_or_las = (strlen(name_db) > 0) or (strlen(name_las_base) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:283: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).
    fa_and_paf = (strlen(name_fasta) > 0) and (strlen(name_paf) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:283:48:  [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).
    fa_and_paf = (strlen(name_fasta) > 0) and (strlen(name_paf) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:284: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).
    fa_or_paf = (strlen(name_fasta) > 0) or (strlen(name_paf) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:284:46:  [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).
    fa_or_paf = (strlen(name_fasta) > 0) or (strlen(name_paf) > 0);
data/hinge-0.5.0/src/maximal/maximal.cpp:304:14:  [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 if (strlen(name_las_base) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:331: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(name_db) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:349: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(name_db) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:354: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(name_fasta) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:367: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(name_db) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:383: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(name_restrict) > 0){
data/hinge-0.5.0/src/maximal/maximal.cpp:403: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(name_las_list[0].c_str()) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:526:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read, rs, re;
data/hinge-0.5.0/src/maximal/maximal.cpp:528:43:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    while (fscanf(mask_file, "%d %d %d", &read, &rs, &re) != EOF) {
data/hinge-0.5.0/src/maximal/maximal.cpp:529:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        reads[read]->effective_start = rs;
data/hinge-0.5.0/src/maximal/maximal.cpp:530:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        reads[read]->effective_end = re;
data/hinge-0.5.0/src/maximal/maximal.cpp:551: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(name_las) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:553: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).
    else if(strlen(name_paf) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:572:12:  [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(name_las_base)> 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:574: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).
            if (strlen(name_las_list[part].c_str()) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:576: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).
            if (strlen(name_las_list[part].c_str()) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:581: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).
            if (strlen(name_las_list[part].c_str()) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:590: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).
        if (strlen(name_paf) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:799: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).
                    if (strlen(name_db) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:827: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).
                    if (strlen(name_db) > 0)
data/hinge-0.5.0/src/maximal/maximal.cpp:888: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).
        if (strlen(name_las) > 0) {
data/hinge-0.5.0/src/maximal/maximal.cpp:898: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(name_db)>0)
data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp:92: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).
                                     strlen(seq),
data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp:114: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).
        seq_coor_t aln_str_size = strlen(q_aln_str);
data/hinge-0.5.0/src/test/LAInterface_consensus_test.cpp:136:66:  [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).
    consensus = get_cns_from_align_tags( tags_list, seq_count+1, strlen(seq), 6 );

ANALYSIS SUMMARY:

Hits = 360
Lines analyzed = 25329 in approximately 0.78 seconds (32429 lines/second)
Physical Source Lines of Code (SLOC) = 18451
Hits@level = [0] 490 [1] 254 [2]  59 [3]   4 [4]  43 [5]   0
Hits@level+ = [0+] 850 [1+] 360 [2+] 106 [3+]  47 [4+]  43 [5+]   0
Hits/KSLOC@level+ = [0+] 46.068 [1+] 19.5111 [2+] 5.74495 [3+] 2.54729 [4+] 2.3305 [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.