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/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifvalue.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifvalues.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifparse.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cif_list_tags.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_lexer.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_grammar_y.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_grammar_y.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lexer.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciftable.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/common.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_grammar_flex.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_grammar_flex.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_options.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_options.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifvalue.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/yy.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/datablock.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciftable.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifmessage.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lexer.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifmessage.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.h
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_lexer.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c
Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/datablock.h
Examining data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/CIF/Parser/Bison/Bison.c
Examining data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/SPGLib/SPGLib.h
Examining data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/SPGLib/SPGLib.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/allocx.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/fopenx.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/texceptions.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/fmemopenx.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tsubsystems.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tfinaly.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tcreallocx.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tstrdupx.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_a.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_a.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_b.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_b.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stringx.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cexceptions.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stringx.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/allocx.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stdiox.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cexceptions.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stdiox.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.h
Examining data/cod-tools-3.1.0+dfsg/src/externals/getoptions/tests/programs/topt.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.c
Examining data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.h

FINAL RESULTS:

data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:303:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf( buf, ";%s\n;\n", text );
data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c:141:15:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
        buf = strcat( buf, value_scalar( list_get( list, i ) ) );
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:299:21:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
                    strcat( new, cxprintf( "&#x%04X;", *src & 255 ) );
data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.c:35:5:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
    vsprintf( error_message, format, args );
data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.c:132:13:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	    pos += sprintf( optnames + pos, "%s%s", pos == 0 ? "" : ", ",
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:313:13:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
            char nprefix[ length ];
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:533: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 header[10];
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:641: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 header[10];
data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cif_list_tags.c:23: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 *usage_text[2] = {
data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifparse.c: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 *usage_text[2] = {
data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifvalues.c:24: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 *usage_text[2] = {
data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.c:30:12:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    static char error_message[200] = "";
data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stdiox.c:21: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).
    FILE *f = fopen( filename, mode );
data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.c:127:16:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        static char optnames[150];
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:307:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                strlen( prefix ) +
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:308:32:  [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).
                (dblock_name ? strlen( dblock_name ) : 0) +
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:310: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).
                2 * strlen( separator ) 
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:319: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( prefix ) != 0 ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:320:17:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
                strncat( nprefix, prefix, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:320: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).
                strncat( nprefix, prefix, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:321:17:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
                strncat( nprefix, separator, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:321:55:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                strncat( nprefix, separator, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:324:17:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
                strncat( nprefix, dblock_name, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:324:57:  [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).
                strncat( nprefix, dblock_name, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:325:17:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
                strncat( nprefix, separator, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:325:55:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                strncat( nprefix, separator, length - strlen(nprefix) - 1 );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_lexer.c:165: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( cif2lval.s ) > cif_mandated_tag_length ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:213: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).
        strlen( datablock_name( cif_last_datablock( cif_compiler_cif( cif_cc ) ) ) ) > 0 ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:218: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( progname && strlen( progname ) > 0 ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:254: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).
            strlen( datablock_name( cif_last_datablock( cif_compiler_cif( cif_cc ) ))) > 0 ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:278:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        ssize_t length = strlen( text ) + countchars( '\n', text ) + 1;
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:302: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).
        char *buf = mallocx( strlen(text) + 5, ex );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:520:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:522:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:523:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:524:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:536:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:552:26:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:564:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:571:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:599:33:  [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).
        in = fmemopenx( buffer, strlen( buffer ), "r", &inner );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:628:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:630:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:631:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:632:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:644:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:660:26:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:672:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:679:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.c:140:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int ch = getc( in );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.c:153:29:  [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( current_line ) > cif_mandated_line_length ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lexer.c:164: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( ciflval.s ) > cif_mandated_tag_length ) {
data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c:134: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).
        length += strlen( value_scalar( list_get( list, i ) ) );
data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c:142: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).
        pos = pos + strlen( value_scalar( list_get( list, i ) ) );
data/cod-tools-3.1.0+dfsg/src/components/codcif/cifvalue.c:150: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).
    size_t len = strlen( str );
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:35: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).
    size_t length1 = strlen( keyword );
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:36: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).
    size_t length2 = strlen( string );
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:178: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).
    int length = strlen(tf);
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:234: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).
    int length = strlen(tf);
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:278: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).
    ssize_t length = strlen( src );
data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:300: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).
                    dest = new + strlen( new ) - 1;
data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifvalues.c:145:9:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
        strncpy( taglist[tagcount - 1], tag_pointer, taglen );
data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c:22:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    size_t length = strlen( bytes ) + 1;
data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c:36:33:  [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).
                dest = buffer + strlen( buffer );
data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c:281: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).
        ( strlen( fname ) == 1 && fname[0] == '-' ) ) {
data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/CIF/Parser/Bison/Bison.c:27:54:  [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).
        SV ** value_ref = hv_fetch(options, optname, strlen(optname), 0);
data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/CIF/Parser/Bison/Bison.c:247: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).
        ( strlen( fname ) == 1 && fname[0] == '-' ) ) {
data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/SPGLib/SPGLib.c:17:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    hv_store( hash, key, strlen(key), scalar, 0 );

ANALYSIS SUMMARY:

Hits = 68
Lines analyzed = 7981 in approximately 0.94 seconds (8531 lines/second)
Physical Source Lines of Code (SLOC) = 6385
Hits@level = [0] 145 [1]  54 [2]   9 [3]   0 [4]   5 [5]   0
Hits@level+ = [0+] 213 [1+]  68 [2+]  14 [3+]   5 [4+]   5 [5+]   0
Hits/KSLOC@level+ = [0+] 33.3594 [1+] 10.65 [2+] 2.19264 [3+] 0.783085 [4+] 0.783085 [5+]   0
Symlinks skipped = 34 (--allowlink overrides but see doc for security issue)
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.